>백엔드 개발 >C++ >.first () vs. .firstordefault () linq : 언제 각각을 사용해야합니까?

.first () vs. .firstordefault () linq : 언제 각각을 사용해야합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-26 10:51:10622검색

.First() vs. .FirstOrDefault() in LINQ: When Should I Use Each?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.