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

C#에서 조건을 만족하는 유일한 요소를 반환하는 Single() 메서드 활용법

C# Single() 메서드란?

C# LINQ의 Single() 메서드는 주어진 조건을 만족하는 유일한 요소 하나만을 반환합니다. 만약 조건을 만족하는 요소가 두 개 이상 존재하거나 아예 존재하지 않으면 InvalidOperationException 예외가 발생한다는 점에 유의해야 합니다.

예제 준비

먼저 다음과 같은 문자열 배열이 있다고 가정해 보겠습니다.

string[] str = { "jack", "tom", "henry", "time" };

이 배열에 대해 Single() 메서드를 호출하고, 람다 식(Lambda Expression)을 함께 사용하여 길이가 4보다 큰 문자열 요소를 찾아봅니다.

str.AsQueryable().Single(name => name.Length > 4);

배열의 요소 중 길이가 4를 초과하는 문자열은 "henry"뿐이므로, Single() 메서드는 정상적으로 해당 값을 반환합니다.

전체 코드 예제

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

public class Demo {
    public static void Main() {
        string[] str = { "jack", "tom", "henry", "time" };

        // 길이가 4보다 큰 문자열 찾기
        string res = str.AsQueryable().Single(name => name.Length > 4);
        Console.WriteLine(res);
    }
}

실행 결과

henry

정리 및 참고 사항

  • Single()은 조건을 만족하는 요소가 정확히 하나일 때만 사용해야 합니다.
  • 조건을 만족하는 요소가 여러 개일 가능성이 있다면 First() 또는 FirstOrDefault() 메서드를 사용하는 것이 더 안전합니다.
  • 조건에 맞는 요소가 없을 수도 있는 경우에는 SingleOrDefault()를 사용하면 예외 대신 기본값(null)을 반환받을 수 있습니다.