我们在C#中有某种Triple系列吗?

我在考虑为列表的每个对象保留三条信息。 所以我可以为这三个信息创建一个具有三个属性的类,然后创建该类类型的集合……但我想知道在.NET 3.5(而不是4.0)中有任何内置的东西吗? 例如一个字典……一个人为每个项目,关键和价值保留两条信息…但我需要三个。 我们有内置的东西吗?

您可以创建自己的Tuple

 public class Tuple : IEquatable{ public T1 Item1{ get; set; } public T2 Item2{ get; set; } public T3 Item3{ get; set; } public Tuple(T1 Item1, T2 Item2, T3 Item3){ this.Item1 = Item1; this.Item2 = Item2; this.Item3 = Item3; } public override bool Equals( object obj ) { if ( obj == null || (obj as Tuple) == null ) //if the object is null or the cast fails return false; else { Tuple tuple = ( Tuple ) obj; return Item1.Equals( tuple.Item1 ) && Item2.Equals(tuple.Item2) && Item3.Equals(tuple.Item3); } } public override int GetHashCode( ) { return Item1.GetHashCode( ) ^ Item2.GetHashCode() ^ Item3.GetHashCode(); } public static bool operator == ( Tuple tuple1, Tuple tuple2 ) { return tuple1.Equals( tuple2 ); } public static bool operator != ( Tuple tuple1, Tuple tuple2 ) { return !tuple1.Equals( tuple2 ); } } 

创建自己的Triple类:

 public class Triple { public T t{get;set;} public X x{get;set;} public Y y{get;set;} } 

它比以下方式更清晰,更易于管理: Dictionary>以及其他类似的方法。

在其他答案中解释了创建类似于.Net 4中添加的通用元组类的解决方案,但我确实认为创建一个小类以在语义上表示您所拥有的数据可能更好。存储有意义的属性。 通用的3元组现在可能有效,但您可能希望稍后扩展该function。

如果您使用的是.NET 4,那么您将寻找Tuple 。 .NET 3.5没有内置类型,但根据您的需要,您可以执行Dictionary>>

尝试使用Dictionary>或者Dictionary ,其中YourClass(当然可以是结构)保存两个必需的数据。