在项目中,我经常使用“容器”来存储具有不同类型的不同数量的值。 例如,对于2和3值:
class Nodes2<K, V> {
public K Key { get; set; }
public V Value { get; set; }
}
class Nodes3<T1, T2, T3> {
public T1 Value1 { get; set; }
public T2 Value2 { get; set; }
public T3 Value3 { get; set; }
}
然后我在集合中使用它们:
List<Nodes3<int, string, double>> descriptions = new List<Nodes3<int, string, double>>();
适用于简单案例的套件,当没有必要为每个这样的案例创建个别类时。
所以,问题是:.NET内置类是否可以保存像我这样的值?
答案 0 :(得分:2)
是的,有。对于键值,您有Dictionary<K,V>
。
对于节点持有者,您有Tuple
(最多8个元素)。虽然有点麻烦(IMO),但您可以使用它们通过Item1
,Item2
等方式访问您的项目。
你可以这样使用它们:
var tuple = Tuple.Create("Hello", 0);
var hello = tuple.Item1;
var zero = tuple.Item2;
答案 1 :(得分:0)
是的,Tuple
,带有额外泛型类型参数的实现。 (Tuple<T>
,Tuple<T1, T2>
等)。 .NET 4中提供了Tuple
。
来自MSDN:
var tuple1 = Tuple.Create(12);
Console.WriteLine(tuple1.Item1)
和
var tuple2 = Tuple.Create("New York", 32.68);
Console.WriteLine("{0}: {1}", tuple2.Item1, tuple2.Item2);
等等。
答案 2 :(得分:0)
已经为此Tuple制作了一个课程。
List<Tuple<int, string, double>> lists = new List<Tuple<int, string, double>>();
lists.Add(Tuple.Create<int, string, double>(5, "string", 10d));