FirstOrDefault란?
주어진 조건을 만족하는 시퀀스에서 첫 번째 요소를 검색하는 LINQ의 메서드입니다.
시퀀스란 저번 Dotween Pro에셋을 소개하면서 짧게 설명해봤습니다.
아래 링크를 참고해주세요!
2022.11.16 - [Unity/Assets] - 신나서 쓰는 Dotween Pro 에셋 사용법
사용방법
Predicate이 없는 경우
- Predicate란?
사전적인 의미로는 "서술하다, 단정하다" 라는 뜻으로 사용하지만 프로그래밍 언어에서는 데이터의 값이 조건을 만족하는지 검사한다는 의미로 사용됩니다.
var numbers = new List<int> { 2, 4, 6, 8, 10 };
var firstNumber = numbers.FirstOrDefault();
Console.WriteLine(firstNumber); // Output: 2
Predicate가 없는 경우 FirstOrDefault는 맨 처음 항목 또는 시퀀스가 비어 있는 경우 Default값을 return해줍니다.
Predicate가 있는 경우
var numbers = new List<int> { 2, 4, 6, 8, 10 };
var firstOddNumber = numbers.FirstOrDefault(n => n % 2 != 0);
Console.WriteLine(firstOddNumber); // Output: 0
위 예시에서는 목록에서 첫 번째 홀수를 찾으려고 시도하는 케이스입니다.
하지만, 홀수가 하나도 없기 때문에 int의 기본값인 '0'을 return합니다.
Predicate를 만족하는 값이 목록에 여러개 있는 경우
using System;
using System.Collections.Generic;
using System.Linq;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
var people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 25 },
new Person { Name = "David", Age = 25 },
new Person { Name = "Eva", Age = 35 },
};
var firstAged25 = people.FirstOrDefault(p => p.Age == 25);
if (firstAged25 != null)
{
Console.WriteLine(firstAged25.Name); // Output: Alice
}
}
}
조건을 만족하는 여러 요소가 있는 경우 첫 번째 값만 return해줍니다.