LINQ를 사용하여 개체 목록에서 중복 항목 계산
고유한 속성을 가진 개체 목록이 주어지면 중복 속성의 개수를 결정하는 것은 프로그래밍의 공통 요구 사항. LINQ(Language Integrated Query) 구문을 사용하면 이 작업을 효과적으로 수행할 수 있습니다.
GroupBy 및 OrderBy 사용
기본적인 접근 방식은 LINQ의 GroupBy 및 OrderBy 연산자를 활용하는 것입니다. GroupBy는 지정된 속성을 기준으로 목록을 그룹으로 분할하고 OrderBy는 요소 개수에 따라 내림차순으로 그룹을 정렬합니다.
var groupedItems = list.GroupBy(x => x.Property) .Select(x => new { Property = x.Key, Count = x.Count() }); var orderedItems = orderedItems.OrderByDescending(x => x.Count);
이 코드는 지정된 속성별로 개체를 그룹화하고 각 개체 내의 개수를 계산합니다. 그룹을 지정한 다음 그룹을 개수에 따라 내림차순으로 정렬합니다.
개체 사용자 정의 비교
객체에 직접적으로 비교할 수 있는 속성이 없는 경우 사용자 지정 비교자 또는 람다 식을 정의할 수 있습니다. 예를 들어, 객체에 고유한 ID 속성이 있는 경우:
var groupedItems = list.GroupBy(x => new { x.Property, x.ID }) .Select(x => new { Property = x.Key.Property, Count = x.Count() });
다중 속성 처리
그룹화를 위해 여러 속성을 고려하려면 복합 키를 사용할 수 있습니다.
var groupedItems = list.GroupBy(x => new { x.Property1, x.Property2 }) .Select(x => new { Property1 = x.Key.Property1, Property2 = x.Key.Property2, Count = x.Count() });
확장으로 구현 메서드
코드 간결성을 높이기 위해 확장 메서드를 사용할 수 있습니다.
public static IEnumerable<T> CountDuplicates<T>(this IEnumerable<T> list, Func<T, object> keySelector) { return list.GroupBy(keySelector) .Select(x => new { Key = x.Key, Count = x.Count() }); }
이 확장 메서드는 지정된 키 선택기 기능을 기반으로 중복 항목을 계산하는 재사용 가능한 방법을 제공합니다.
LINQ의 강력한 기능과 이러한 기술을 활용함으로써 개발자는 목록 내 중복 값이 포함된 데이터를 효율적으로 관리하고 분석할 수 있습니다. 개체입니다.
위 내용은 LINQ를 사용하여 개체 목록에서 중복 속성을 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!