본문 바로가기
C#/Enumerable (Linq)

[C#] Enumerable.FirstOrDefault() 메서드

by 스누누피 2024. 12. 10.

Enumerable.FirstOrDefault()

Enumerable의 메서드 중 FirstOrDefault는 첫번째 값을 반환하거나 해당 시퀀스가 비어있다면 시퀀스 타입의 기본값을 반환한다.

int의 기본값은 0, string의 기본값은 "" 이다.


메서드 예제 1.

string 형식의 a, b, c가 담긴 배열과 아무것도 들어있지 않은 int 배열을 이용해 FirstOrDefault 메서드를 사용해 보겠다.

string[] strArr = { "a", "b", "c" };
int[] intArr = new int[] { };

string str1 = strArr.FirstOrDefault();
int i1 = intArr.FirstOrDefault();

Console.WriteLine(str1); // a
Console.WriteLine(i1); // 0 

// intArray의 기본값은 0
// stringArray의 기본값은 ""

 

메서드 예제 2.

단순히 첫번째 값을 반환하는 것 뿐만아니라 조건을 설정해 조건에 해당하는 첫번째 값을 반환하거나 스퀀스의 모든 요소가 해당이 안되면 기본값을 반환할 수 도 있다.

 

10 이상의 케이스가 있는지와 짝수가 있는지를 확인해서 가장 첫번째 값을 출력해 보겠다.

int[] intArr2 = { 1, 3, 5, 7, 9, 11, 13 };

int i2 = intArr2.FirstOrDefault(x => x >= 10);
int i3 = intArr2.FirstOrDefault(x => x%2 == 0);

Console.WriteLine($"i2: {i2}"); // i2: 11
Console.WriteLine($"i3: {i3}"); // i3: 0

 

번외.

FirstOrDefault와 반대로 LastOrDefault는 가장 마지막에 해당 되는 요소를 반환해주는 메서드이다.

 

 


참고 자료

Enumerable.FirstOrDefault 메서드 | https://learn.microsoft.com/ko-kr/dotnet/api/system.linq.enumerable.firstordefault?view=net-8.0

'C# > Enumerable (Linq)' 카테고리의 다른 글

[C#] OfType<T>() vs CAST<T>()  (0) 2024.12.19
[C#] Enumerable.Union() 메서드  (0) 2024.12.13
[C#] Linq (람다식 메서드)  (0) 2024.11.05
[C#] Linq (Enumerable 클래스)  (0) 2024.07.23