C#

[C#]First, FirstOfDefault 함수 사용 방법

DevStory 2021. 12. 20.

First와 FirstOrDefault란?

First() 함수와 FirstOrDefault() 함수는 컬렉션에서 첫 번째 요소를 반환하거나 또는 조건을 만족하는 여러 요소 중에서 첫 번째 요소를 반환합니다.

 

이번 포스팅에서는 First() 함수와 FirstOfDefault() 함수에 대해 정리합니다.


First() 함수와 FirstOfDefault() 함수 사용 방법

▶ First() 함수

  • 매개변수가 생략된 경우 컬렉션의 첫 번째 요소를 반환합니다.
  • 매개변수로 람다식 또는 Func 대리자를 입력하여 지정된 조건을 만족하는 첫 번째 요소를 반환합니다.
  • 지정된 조건을 만족하는 요소가 없거나 빈 컬렉션에서 First() 함수를 호출하면, InvalidOperationException이 발생합니다.

다음은 First() 함수 예제입니다.

new[] { "A", "B", "C" }.First();
// A

new[] { "A", "B", "C" }.First(x => x.Equals("B"));
// B

new[] { "ABC", "BC", "CD" }.First(x => x.Contains("CD"));
// CD

다음은 First() 함수에서 InvalidOperationException이 발생하는 경우입니다.

new[] { "A", "B", "C" }.First(x => x.Equals("D"));
// 조건을 만족하는 값이 없음

new[] { "ABC", "BC", "CD" }.First(x => x.Contains("CDE"));
// 조건을 만족하는 값이 없음

new string[0].First();
// 빈 배열에서 First() 함수 호출

 

▶ FirstOrDefault() 함수

  • 매개변수가 생략된 경우 컬렉션의 첫 번째 요소를 반환합니다.
  • 매개변수로 람다식 또는 Func 대리자를 입력하여 지정된 조건을 만족하는 첫 번째 요소를 반환합니다.
  • 지정된 조건을 만족하는 요소가 없거나 빈 컬렉션에서 FirstOrDefault() 함수를 호출하면, 컬렉션 데이터 유형의 기본 값을 반환합니다.

다음은 FirstOrDefault() 함수 예제입니다.

new[] { "A", "B", "C" }.FirstOrDefault();
// A

new[] { "A", "B", "C" }.FirstOrDefault(x => x.Equals("B"));
// B

new[] { "ABC", "BC", "CD" }.FirstOrDefault(x => x.Contains("CD"));
// CD

다음은 First() 함수에서 InvalidOperationException이 발생했던 예제를 FirstOrDefault() 함수로 변경합니다.

 

new[] { "A", "B", "C" }.FirstOrDefault(x => x.Equals("D"));
// null

new[] { "ABC", "BC", "CD" }.FirstOrDefault(x => x.Contains("CDE"));
// null

new string[0].FirstOrDefault();
// null

C#에서 string은 참조 형식이며, 참조 형식의 기본값은 null입니다. 위 예제에서 FirstOrDefault() 함수는 null을 반환합니다.


LINQ와 함께 사용되는 경우

▶ First() 함수

컬렉션(또는 반복되는 요소)에 적어도 하나의 요소가 존재하는 경우 사용합니다.

 

▶ FirstOrDefault() 함수

컬렉션(또는 반복되는 요소)에 조건을 만족하는 요소가 존재하는지 체크하는 경우 사용합니다. First() 함수도 람다식 또는 Func 대리자를 사용하여 지정된 조건을 만족하는 첫 번째 요소를 체크할 수 있지만, 만족하는 경우 예외가 발생하므로 FirstOrDefault() 함수가 더 안전합니다.

반응형

댓글