람다 표현식을 사용하여 .NET에서 고유 값을 효율적으로 식별
컬렉션에서 고유한 요소를 추출하는 것은 자주 프로그래밍해야 하는 작업입니다. .NET의 LINQ 라이브러리는 이를 위해 Distinct()
메서드를 제공하지만 특정 동등 비교가 필요한 사용자 지정 개체를 처리할 때 그 한계가 분명해집니다. Distinct()
은 IEqualityComparer
을 허용하지만 이 비교에 람다 식을 직접 사용하는 것은 기본적으로 지원되지 않습니다.
IEqualityComparer
한 가지 해결책은 IEqualityComparer
인라인:
<code class="language-csharp">var distinctValues = myCustomerList.Distinct( EqualityComparer<Customer>.Create((c1, c2) => c1.CustomerId == c2.CustomerId) );</code>
이 방법은 기능적이지만 다소 번거로울 수 있습니다.
대안: GroupBy
및 Select
보다 우아한 대안은 명시적인 IEqualityComparer
의 필요성을 우회합니다. 이 접근 방식은 GroupBy
및 Select
:
<code class="language-csharp">IEnumerable<Customer> filteredList = originalList .GroupBy(customer => customer.CustomerId) .Select(group => group.First());</code>
지정된 키(이 경우 CustomerId
)를 기준으로 요소를 그룹화한 다음 각 그룹의 첫 번째 항목을 선택하여 중복 항목을 효과적으로 필터링합니다. 이는 람다 표현식을 사용하여 고유한 값을 얻기 위한 더 명확하고 읽기 쉬운 솔루션을 제공합니다.
위 내용은 lambda 표현식을 사용하여 .NET에서 뚜렷한 값을 얻으려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!