개체 목록이 있습니다. 이러한 객체는 기본적으로 두 개의 문자열 필드 (String1 및 String2)를 포함하는 사용자 정의 클래스로 구성됩니다. 내가 알아야 할 것은 이러한 문자열 중 하나라도 해당 목록에 중복되어있는 경우입니다. 그래서 "objectA.String1 == objectB.String1"또는 "ObjectA.String2 == ObjectB.String2"또는 "ObjectA.String1 == ObjectB.String2"또는 "ObjectA.String2 == ObjectB"인지 알고 싶습니다. String1 ". 또한 중복 문자열을 포함하는 각 객체를 bool (HasDuplicate) 객체와 함께 표시하려고합니다.개체 목록에서 중복 속성을 검색하는 LINQ 쿼리
foreach(var item in duplicationList)
{
if(item.HasDuplicate == true)
{
Console.WriteLine("Duplicate detected!");
}
}
이것은 LINQ와 함께 해결하는 좋은 문제처럼 seemd,하지만 난 내 인생은 알아낼 수 없습니다 위해 : 복제 탐지가 실행 된 경우
그래서 나는 단순히과 같이 목록을 통해 foreach는 할 좋은 쿼리. 그래서 '좋은 - 오래된'foreach를 사용하여 그것을 해결했지만 여전히 LINQ 버전에 관심이 있습니다.
LINQPad에서 테스트 할 때 작동합니다. 감사! –
LINQPad는 이와 같은 문제를 파악하기위한 훌륭한 도구입니다. 모든 C# 개발자는 사본이 있어야합니다. –
니스. 한 가지 요점 - Except에서 Any 메서드로 로직을 옮기는 것이 확인되는 모든 요소에 대한 List의 생성을 저장하므로 좀 더 효율적이라고 생각할 것입니다. var dupes = list.Where (a => 리스트 .Any (a! = x & Foo == a.Foo || x.Bar == a.Bar || x. Foo == a.Bar || x.Bar == a.Foo)) ) .ToList(); –