0
람다 (x => x.ID.Equals (newItem.ID))가있는 oldItem을 찾을 수 없습니다 - 제네릭이므로. ID와 같은 또 다른 매개 변수를 제공하고 리플렉션을 통해 속성 값을 얻으려고 사용할 수 있습니다. 그러나 실제로이 방법이 더 좋은 방법입니까?두 개의 일반 목록에서 동일한 속성 찾기
private void LogDiff<T>(HashSet<T> newList, HashSet<T> oldList)
{
Parallel.ForEach(newList, newItem =>
{
var oldItem = oldList.FirstOrDefault(x => x.ID.Equals(newItem.ID));
if (oldItem!= null)
{
//Yay i found my item
});
}
멋진 솔루션 @ 존 스키트에서 들리는군요.이 영역에서 강하지는 않습니다.이 메소드가 어떻게 불려지는지 알려주세요. 예를 들어, 내 T 객체의 ex ID로 Func을 정의한 방법을 보여줄 수 있습니까? – MacGyver
@MacGyver : 발신자가 지정합니다. LogDiff (newItems, oldItems, x => x.ID)' –
작동하지 않을 수 있습니다 - 잘못된 인수가 무엇인지, 잘못된 점을 알고 있습니까? – MacGyver