【发布时间】:2009-07-28 21:45:26
【问题描述】:
我的对象是“MyClass”,具有 2 个属性:Id (int) 和 HourBy (int)
我有两个清单:
var List1 = new List<MyClass>();
var List2 = new List<MyClass>();
我想获得一份清单: - 来自 List1 的对象基于 Id 存在于 List2 中,其中 Hourby (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);
谢谢,
【问题讨论】:
-
你能确认这是你想要的吗.....你想要返回 list1 中存在于 list2 但在 List2 中具有较低 HourBy 属性值的所有项目,以及所有存在的项目在 List2 中但不在 List1 中?
-
我同意,散文解释不是很清楚,但例子更清楚地表明了需求。我发现看到人们在他们的答案中使用的不同方法很有趣(尽管它们在功能上并不完全相同)
-
@James :让我试着改写一下。 List1 作为对象,List2 包含 List1 的某个对象的副本。 List2 可以包含多次相同的对象。我想要一个 List2 中不存在的对象的列表,如果存在(一个或多个),则某些必须等于 list1 中的值(HourBy),如果不是该对象出现在结果列表中,则 HourBy 之间的差异 List1和 List2(Id 的总和)
-
@MattH :同意,样本更清晰 :)
-
@Kris,好吧,我想我知道你想做什么。让我更新我的答案!