Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# LINQ LastOrDefault 메서드 – 시퀀스의 마지막 요소 또는 기본값 반환하기

C# LINQ의 LastOrDefault() 메서드는 시퀀스의 마지막 요소를 반환하며, 요소가 존재하지 않을 경우 해당 데이터 형식의 기본값(default)을 반환합니다.

일반적인 Last() 메서드를 빈 컬렉션에 호출하면 InvalidOperationException 예외가 발생하지만, LastOrDefault()를 사용하면 예외 없이 안전하게 기본값을 받을 수 있다는 점이 가장 큰 차이입니다.

빈 리스트에서의 동작

먼저 비어 있는 리스트를 하나 만들어 보겠습니다.

List<double> val = new List<double> { };

이 리스트에는 요소가 하나도 없으므로 마지막 요소를 가져올 수 없습니다. 하지만 LastOrDefault()를 호출하면 오류가 발생하지 않고 double 형식의 기본값인 0이 반환됩니다.

val.AsQueryable().LastOrDefault();

예제 코드

다음은 전체 실행 코드입니다.

using System;
using System.Collections.Generic;
using System.Linq;

class Demo {
   static void Main() {
      List<double> val = new List<double> { };
      double d = val.AsQueryable().LastOrDefault();
      Console.WriteLine("Default Value = " + d);

      if (d == 0.0D) {
         d = 0.1D;
      }
      Console.WriteLine("Default Value changed = " + d);
   }
}

실행 결과

Default Value = 0
Default Value changed = 0.1

참고 사항

반환되는 기본값은 데이터 형식에 따라 다릅니다. 숫자 형식(int, double 등)은 0, 참조 형식(string, 클래스 등)은 null, bool 형식은 false가 기본값으로 반환됩니다. 따라서 위 예제처럼 반환값이 기본값인지 확인하여 원하는 값으로 대체하는 패턴을 자주 활용할 수 있습니다.