为什么.NET不提供类List<KeyValuePair<T, U>>?
我认为当你需要保持一对数组时,有很多情况.例如,
1; 2 "a"; "array"
5; 8 "b"; "browser"
1; 9 "f"; "Firefox"
8; 10 "f"; "frequency"
Run Code Online (Sandbox Code Playgroud)
Àla:
Pairs<int, int> myPairs;
myPairs.Add(10, 8);
myPairs.Add(5, 8);
myPairs.Add(10, 5);
myPairs.Add(1, 4);
myPairs[0].Value1 = 5;
myPairs[5].Value2 = 8;
Run Code Online (Sandbox Code Playgroud)
这似乎对我来说完全没用 - 只是因为你有一对价值观并不意味着它也必然是一个关键/价值关系.
.NET 4引入了Tuple类型系列...除非这确实是一个键/值对,否则我会使用List<Tuple<T1, T2>>- 我认为没有理由为了封装该构造而存在单个类型.
编辑:要把它放到上下文中,这里使用的是"困难" Tuple,转换您的示例代码:
var myPairs = new List<Tuple<int, int>> {
Tuple.Create(10, 8),
Tuple.Create(5, 8),
Tuple.Create(10, 5),
Tuple.Create(1, 4),
};
Run Code Online (Sandbox Code Playgroud)
现在元组是不可变的,所以你不能按照代码的最后一部分直接设置值......但是编写 "list"和"value of values"两个概念的美妙之处在于你可以轻松编写自己的MutableTuple类型并使用完全相同的代码...而如果您有一个硬连线Tuple或其他类型的集合类,您将没有这种灵活性.
| 归档时间: |
|
| 查看次数: |
21240 次 |
| 最近记录: |