将2个对象添加到List

时间:2014-12-17 14:18:40

标签: c#

我正在比较对象以确定它们是否相等,或者有任何差异。

如果它们不同,我想以某种方式将它们存储在一起,但我不确定如何。将添加多个相同类型的对象。

类似于:

List<T,T>可能吗?

因此,如果我将对象A与对象B进行比较,并且它们不相同,我可以调用:

List.Add(A,B).

所以我知道每个元素的每个对象都是相关的吗?

希望这是有道理的!

3 个答案:

答案 0 :(得分:4)

您可以创建包含两个属性的类,也可以使用Tuple<T1,T2>

前者看起来像

list.Add( new MyObject(A,B) )

后者看起来像

list.Add( Tuple.Create(A,B) );

为了初始化此列表,我们需要知道AB的类型 - 但我们假设A的类型为Foo和{{1} }类型为B,列表将初始化为

Bar

答案 1 :(得分:1)

  

将添加多个相同类型的对象。

然后听起来你想要一个List<List<T>>(基本上是一个锯齿状的数组)。如果有一些“关键”值(例如您要比较的属性)可用于识别“相等”对象组,则Dictionary<TKey,List<TValue>>可能会提供一些性能改进。

请注意,如果您已经拥有集合,则可以使用GroupBy Linq方法将“相等”对象组合在一起。

答案 2 :(得分:0)

您可以使用Tuple存储不同类型的对象

Tuple<type1,type2>