我需要编写一个可以比较两个列表的方法,以查看两者之间是否存在任何差异,而无需具体指定要比较的两个列表中的哪些属性。例如,我不能说:
var exceptList = list1.Where (r => r.Name !list2.Any( r2.Name == r.Name ))
粗体部分需要是动态的,因此我可以将该方法重新用于不同类型的列表。我知道下面的例子不起作用,但我需要类似的东西:
var r = myLeftList.Where(p => !myRighttList.Any(p2 =>
p2.GetType().GetProperties().GetValue(myLeftList.IndexOf(p2)) ==
p.GetType().GetProperties().GetValue(myRighttList.IndexOf(p))));