我的对象是“MyClass”,有两个属性:Id (int) 和 HourBy (int)
我有两个列表:
var List1 = new List<MyClass>();
var List2 = new List<MyClass>();
我想要一份 list : - List1 中的对象根据 Id 与 Hourby (list2) < Hourby in List1 存在于 List2 中 - List1 中的对象不存在于 List2 中
//#Sample1
//List1 :
List1.add(new MyClass(1,10));
List1.add(new MyClass(2,20));
List1.add(new MyClass(3,30));
//List2 :
List2.add(new MyClass(1,10));
List2.add(new MyClass(2,15));
//I'd like to get :
new MyClass(2,5);
new MyClass(3,30);
//Sample2
List1 :
List1.add(new MyClass(1,10));
List1.add(new MyClass(2,20));
List1.add(new MyClass(3,30));
//List2 :
List2.add(new MyClass(1,10));
List2.add(new MyClass(2,15));
List2.add(new MyClass(2,2));
//I'd like to get :
new MyClass(2,3);
new MyClass(3,30);
谢谢,
最佳答案
您可以通过以下 Linq 语句执行此操作:
var result = List1.Where(x => !List2.Select(y => y.Id).Contains(x.Id)
|| List2.Single(y => x.Id == y.Id).HourBy < x.HourBy);
最好的问候
关于c# - 使用 Linq 比较列表并获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1193345/