Когда у меня есть 2 объекта List<string>
, я могу напрямую использовать на них Intersect
и Except
, чтобы получить результат IEnumerable<string>
. Это достаточно просто, но что, если я хочу пересечение/разъединение чего-то более сложного?
Пример: попытка получить набор объектов ClassA
, который является результатом пересечения AStr1
объекта ClassA
и BStr
объекта ClassB
; :
public class ClassA {
public string AStr1 { get; set; }
public string AStr2 { get; set; }
public int AInt { get; set; }
}
public class ClassB {
public string BStr { get; set; }
public int BInt { get; set; }
}
public class Whatever {
public void xyz(List<ClassA> aObj, List<ClassB> bObj) {
// *** this line is horribly incorrect ***
IEnumberable<ClassA> result =
aObj.Intersect(bObj).Where(a, b => a.AStr1 == b.BStr);
}
}
Как я могу исправить отмеченную линию для достижения этого пересечения.