C#의 Single() 메서드는 LINQ에서 제공하는 연산자로, 시퀀스(컬렉션)에 포함된 단 하나의 요소를 가져올 때 사용합니다.
Single()은 정확히 하나의 요소가 존재할 때만 정상적으로 동작하며, 요소가 없거나 두 개 이상이면 InvalidOperationException 예외가 발생한다는 점을 기억해야 합니다.
Single() 메서드 기본 사용법
예를 들어, 요소가 하나뿐인 문자열 배열이 있다고 가정해 보겠습니다.
string[] str = { "one" };이 배열에서 유일한 요소를 가져오려면 다음과 같이 AsQueryable()과 함께 Single() 메서드를 호출하면 됩니다.
str.AsQueryable().Single();
전체 코드 예제
아래는 Single() 메서드의 실제 동작을 확인할 수 있는 완전한 C# 코드입니다.
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
// 요소가 하나뿐인 문자열 배열 선언
string[] str = { "one" };
// Single() 메서드로 유일한 요소 가져오기
string res = str.AsQueryable().Single();
Console.WriteLine(res);
}
}실행 결과
위 코드를 실행하면 배열에 존재하는 유일한 요소가 출력됩니다.
one
주의 사항
Single() 메서드를 사용할 때는 다음 사항에 유의해야 합니다.
- 시퀀스에 요소가 하나도 없으면 예외가 발생합니다.
- 시퀀스에 두 개 이상의 요소가 있어도 예외가 발생합니다.
- 조건과 일치하는 요소가 없거나 여러 개여도 예외를 피하고 싶다면
SingleOrDefault()또는FirstOrDefault()메서드를 사용하는 것이 좋습니다.
따라서 컬렉션에 반드시 하나의 요소만 있다는 것이 보장되는 경우에 Single() 메서드를 사용하는 것이 안전합니다.