C#에서 방법과 람다 표현 : 대체 방법의 탐색 Distinct()
System.linq의 확장 메소드는 열거 개체에서 중복 요소를 필터링하는 편리한 방법을 제공합니다. 간단한 경우에는 매개 변수없이 사용할 수 있지만 객체의 동등한 것을 결정하려면
인스턴스가 필요합니다. 이것은 특히 Lambda 표현을 사용할 때 번거 롭을 수 있습니다.
람다 표현을 받아들이는 무거운 짐이 있습니까? 다음은 구현 방법입니다
사용자 정의 확장 메소드 Distinct()
자신의 확장 방법을 정의 할 수 있습니다.이 방법은 Lambda 표현식을 사용하여 요소를 비교합니다
IEqualityComparer
사용 :
내부 Union IEQULITY COMPARER Distinct()
를 직접 지정하는 것은 불가능하지만 사용자 정의 비교 클래스를 변경 방법으로 사용할 수 있습니다.
사용 :
Anders Hejlsberg의 설명
C# 언어 디자이너 Anders Hejlsberg는이 문제를 해결했습니다. 그는 내부 해시 테이블에서 객체가 제대로 작동하는 경우 동일한 요소는 동일한
return value eSSENCE를 가져야하기 때문에 LAMBDA 표현식의 a
<code class="language-csharp">public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> source, Func<T, TKey> keySelector)
{
return source.GroupBy(keySelector).Select(group => group.First());
}</code>
로그인 후 복사
다시로드를 정의하는 것은 기술적으로 도전적이라고 설명했습니다. 따라서
를 사용해야합니다.
위 내용은 Lambda 표현식은 C#에서`Contret ()`와 직접 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!