나는 컬렉션의 클래스가 있으며 컬렉션의 각 클래스에는 세 개의 속성이 있지만 클래스 컬렉션의 속성 중 두 개씩 구분해야합니다. 혼란스러운 부분은 내가 두 속성에 의해서만 구별 된 후에 세 속성 모두가 필요하다는 것입니다. 예를 들어 구분되는 대부분의 속성은 별개의 속성을 사용하여 무의미한 형식을 만들지 만 고유 한 작업 후에 항목 컬렉션에 있어야하는 제 3의 속성을 제거합니다. 세 가지 속성 중 두 가지로 구분할 수 있지만 최종 결과는 세 가지 속성을 모두 포함하는 클래스의 컬렉션입니까? 수업 :C# LINQ - 두 속성을 구분하지만 클래스의 모든 속성을 유지하는 방법
public class Foo
{
public int PropertyOne {get; set;}
public int PropertyTwo {get; set;}
public string PropertyThree {get; set;}
}
// fake example of what I want but
// final result has all three properties in the collection still
var finalResult = allItems.DistinctBy(i => i.PropertyOne, i.PropertyTwo).ToArray();
어떤 도움을 주셔서 감사합니다!
실제로 익명 형식을 만들려고 했습니까? 이것은 단지 그룹화를위한 키로 사용됩니다 ... src의 항목이 람다를 사용하여 출력 순서로 투영되지 않으면 변경되지 않습니다. 시도 해봐. – spender
IEqualityComparer를 만들고 LINQ의 Distict 메서드를 사용하지 않는 이유는 무엇입니까? – Tsef
@zaf :'IEqualityComparer '를 생성하는 것은'source.GroupBy (keySelector) .Select (g => g.First())'와 같이 쉽게 기술 할 수있는 오버 헤드와 비슷합니다. – spender