ID, 이름 및 도시 등록 정보가있는 두 개의 고객 목록 list1 및 list2가 있습니다. list2에 같은 이름과 도시가있는 경우 list1에서 항목을 삭제해야합니다. 어떻게 여러 매개 변수를 선택 linq 쿼리를 작성합니다.다른 목록의 두 매개 변수를 기반으로 하나의 목록에서 항목을 삭제하십시오.
0
A
답변
10
list1.RemoveAll(c => list2.Any(c2 => c2.Name == c.Name && c2.City == c.City));
2
두 개의 부울이있는 조건을 쓰는 것과 같습니다. &&
또는 ||
을 사용합니다. 예 :에 "조건은"너무 오래 당신이 결국 부울을 반환로, 단순히 Func<MyType, bool>
것을
from x in list1
where list2.Any(y => y.Name == x.Name && y.City == x.City)
select x
주, 당신은 거기에 꽤 펑키 물건을 할 수 있습니다. 물론
, 당신은 열거 할거야 IEnumerable
(.ToList()
IT)을 열거 동안 목록을 변경할 수는 없지만 아마 (또는 위의 술어 List.RemoveAll
를 사용하는) 것을 알고 있기 때문에 삭제하기 전에