我想为列表中的每个对象保留三条信息.所以我可以为这三个信息创建一个具有三个属性的类,然后创建该类类型的集合......但我想知道在.NET 3.5(而不是4.0)中有任何内置的东西吗?例如一个字典......每个项目,密钥和值保留两条信息...但我需要三条.我们有内置的东西吗?
Oma*_*mar 17
你可以创建自己的Tuple<T1, T2, T3>:
public class Tuple<T1, T2, T3> : IEquatable<Object>{
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<T1, T2, T3>) == null ) //if the object is null or the cast fails
return false;
else {
Tuple<T1,T2,T3> tuple = ( Tuple<T1, T2, T3> ) 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<T1, T2, T3> tuple1, Tuple<T1, T2, T3> tuple2 ) {
return tuple1.Equals( tuple2 );
}
public static bool operator != ( Tuple<T1, T2, T3> tuple1, Tuple<T1, T2, T3> tuple2 ) {
return !tuple1.Equals( tuple2 );
}
}
Run Code Online (Sandbox Code Playgroud)
Sae*_*iri 12
创建自己的Triple类:
public class Triple<T,X,Y>
{
public T t{get;set;}
public X x{get;set;}
public Y y{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
它比以下方式更清晰,更易于管理:Dictionary<Key, KeyValuePair<X,Y>>和其他方法一样.
| 归档时间: |
|
| 查看次数: |
8676 次 |
| 最近记录: |