C# 向列表中添加2个对象
我在比较物体,看它们是否相等,或者有什么不同 如果它们不同,我想以某种方式将它们存储在一起,但我不确定如何存储。将添加多个相同类型的对象 有点像:C# 向列表中添加2个对象,c#,C#,我在比较物体,看它们是否相等,或者有什么不同 如果它们不同,我想以某种方式将它们存储在一起,但我不确定如何存储。将添加多个相同类型的对象 有点像: 列表可能吗 因此,如果我比较对象A和对象B,它们不一样,我可以调用: List.Add(A,B). 所以我知道每个元素上的每个对象都是相关的 希望这有意义 您可以创建具有两个属性的类,也可以使用 前者看起来像 list.Add( new MyObject(A,B) ) list.Add( Tuple.Create(A,B) ); 后者看起来就像
列表
可能吗
因此,如果我比较对象A和对象B,它们不一样,我可以调用:
List.Add(A,B).
所以我知道每个元素上的每个对象都是相关的
希望这有意义 您可以创建具有两个属性的类,也可以使用 前者看起来像
list.Add( new MyObject(A,B) )
list.Add( Tuple.Create(A,B) );
后者看起来就像
list.Add( new MyObject(A,B) )
list.Add( Tuple.Create(A,B) );
为了初始化此列表,需要知道A
和B
的类型,但假设A
是Foo
类型,而B
是Bar
类型,列表将初始化为
var list = new List<Tuple<Foo,Bar>>()
var list=新列表()
您可以创建具有两个属性的类,也可以使用
前者看起来像
list.Add( new MyObject(A,B) )
list.Add( Tuple.Create(A,B) );
后者看起来就像
list.Add( new MyObject(A,B) )
list.Add( Tuple.Create(A,B) );
为了初始化此列表,需要知道A
和B
的类型,但假设A
是Foo
类型,而B
是Bar
类型,列表将初始化为
var list = new List<Tuple<Foo,Bar>>()
var list=新列表()
您可以使用Tuple存储不同类型的对象
Tuple<type1,type2>
元组
您可以使用Tuple存储不同类型的对象
Tuple<type1,type2>
元组
将添加多个相同类型的对象
然后听起来你想要一个列表
(基本上是一个锯齿状数组)。如果有一些“键”值(例如,您正在比较的属性)可用于标识“相等”对象的组,则字典
可能会提供一些性能改进
请注意,如果已经有一个集合,则可以使用GroupBy
Linq方法将“equal”对象分组在一起
将添加多个相同类型的对象
然后听起来你想要一个列表
(基本上是一个锯齿状数组)。如果有一些“键”值(例如,您正在比较的属性)可用于标识“相等”对象的组,则字典
可能会提供一些性能改进
请注意,如果您已经有一个集合,您可以使用
GroupBy
Linq方法将“相等”对象分组在一起。创建一个具有两个属性的类,或者使用列表
或列表
@Tim-非常尊敬您,但是,如果你要回答一个问题,你能回答它而不是评论吗?否则,我们这些花时间回答问题的人会被指控。谢谢。创建一个具有两个属性的类,或者使用列表
或列表
@Tim-非常尊敬你,但是如果你要回答一个问题,你能回答它而不是评论吗?否则,我们这些花时间去回答的人会被指控。谢谢。这是一个如何创建空元组的示例,因为当我遍历所有对象时,这将是一个扩展列表。如果是,我会继续添加它们different@BhargavModi-不,复制自大约15年来编写.NET代码的过程*rolleyes*如何使用元组在后一个示例中创建列表?变量列表=新List@user3437721:你应该熟悉。如果您想要一个满是字符串的列表,请使用new list()
如果您想要自定义类Foo
使用new list()
和元组new list()
(假设两者的类型都是字符串)。@user3437721-请参阅更新的答案示例,了解如何创建空元组,因为当我循环遍历所有对象时,这将是一个扩展列表。如果是,我会继续添加它们different@BhargavModi-不,复制自大约15年来编写.NET代码的过程*rolleyes*如何使用元组在后一个示例中创建列表?变量列表=新List@user3437721:你应该熟悉。如果您想要一个充满字符串的列表,请使用new list()
如果您想要自定义类Foo
使用new list()
和元组new list()
(假定两者的类型都是字符串)。@user3437721-请参阅更新的答案