LINQ의 First() 및 FirstOrDefault() 사용 시나리오
LINQ의 .First()
및 .FirstOrDefault()
메서드는 기능적으로 유사하지만 동작이 약간 다릅니다. 각 방법이 적합한 시나리오를 자세히 살펴보겠습니다.
.First()를 사용하는 경우
시퀀스에 항상 하나 이상의 요소가 포함된다고 확신하는 경우 .First()
를 사용하세요. 첫 번째로 일치하는 요소를 반환합니다. 일치하는 요소가 없으면 "InvalidOperationException" 예외가 발생합니다. 이 방법은 빈 시퀀스가 예외인 경우에 적합합니다.
.FirstOrDefault()를 사용하는 경우
시퀀스가 비어 있거나 비어 있을 것으로 예상되는 경우 .FirstOrDefault()
을 사용하세요. 일치하는 요소가 있으면 첫 번째로 일치하는 요소를 반환하고, 그렇지 않으면 요소 유형에 대한 기본값을 반환합니다. 이 방법은 빈 시퀀스가 유효한 경우에 사용해야 합니다.
.Take(1) 사용 시기
.Take(1)
방법은 .First()
과 유사하지만 한 가지 중요한 차이점이 있습니다. 요소 자체를 반환하지 않고 정확히 하나의 요소를 포함하는 시퀀스를 반환합니다. 이러한 구별은 일련의 값 유형을 처리할 때 중요해집니다.
예
다음 순서를 고려하세요.
<code class="language-csharp">var list = new List<int> { 1, 2, 3 };</code>
.First() 사용:
<code class="language-csharp">int result = list.Where(x => x % 2 == 0).First();</code>
시퀀스에 짝수(2)가 있으므로 이 코드는 값 2를 반환합니다. 짝수가 없으면 예외가 발생합니다.
.FirstOrDefault() 사용:
<code class="language-csharp">int result = list.Where(x => x % 2 == 4).FirstOrDefault();</code>
이 경우 술어와 일치하는 짝수가 없으므로 .FirstOrDefault()
는 정수의 기본값인 0을 반환합니다.
.Take(1) 사용:
<code class="language-csharp">var result = list.Where(x => x % 2 == 0).Take(1);</code>
이 코드는 단일 요소 2를 포함하는 시퀀스를 반환합니다.
위 내용은 .first () vs. .firstordefault () linq : 언제 각각을 사용해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!