C# Linq First와 FirstOrDefault의 차이점

2274 단어 C#

Enumerable.First 메서드
시퀀스의 첫 번째 요소를 반환합니다.
Enumerable.FirstOrDefault 메서드
서열의 첫 번째 요소 되돌리기;시퀀스에 요소가 없으면 기본값을 반환합니다.
참고: 사용 시 객체가 반환된 경우 FirstOrDefault를 사용하고 반환된 객체를 공백으로 두는 것이 좋습니다.
1. FirstOrDefault
만약 검색한 데이터가 존재하지 않는다면,null로 되돌아갑니다
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            var compoundList = new List();
            compoundList.Add(new CompoundType()
            {
                CompoundTypeID = "1",
                TypeEN = "Type1"
            });
            compoundList.Add(new CompoundType()
            {
                CompoundTypeID = "2",
                TypeEN = "Type2"
            });

            var search = compoundList.Where(d => d.CompoundTypeID == "0").FirstOrDefault(); // null
            Console.WriteLine("Compound type={0}, typeen = {1}", search.CompoundTypeID, search.TypeEN); // NullException
 
            Console.ReadKey();
        }
    }

    public class CompoundType
    {
        public string CompoundTypeID { get; set; }
        public string TypeEN { get; set; }
    }
}

2. First
만약 조회한 데이터가 존재하지 않는다면 시스템으로 던집니다.InvalidOperationException 예외
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            var compoundList = new List();
            compoundList.Add(new CompoundType()
            {
                CompoundTypeID = "1",
                TypeEN = "Type1"
            });
            compoundList.Add(new CompoundType()
            {
                CompoundTypeID = "2",
                TypeEN = "Type2"
            });

            var search = compoundList.Where(d => d.CompoundTypeID == "0").First(); // System.InvalidOperationExceptionan  
            Console.WriteLine("Compound type={0}, typeen = {1}", search.CompoundTypeID, search.TypeEN);
 
            Console.ReadKey();
        }
    }

    public class CompoundType
    {
        public string CompoundTypeID { get; set; }
        public string TypeEN { get; set; }
    }
}

좋은 웹페이지 즐겨찾기