问个比较弱智的问题,以下两种集合哪种读取速度最快?最快的取值方式?
//a var dic = new Dictionary<Tuple<int, int>,string>(); for (int i = 1; i < 9; i++) for (int j = 1; j < 9; j++) dic.Add(new Tuple<int,int>(i, j), i + "aa" + j); //b var dic = new Dictionary<KeyValuePair<int, int>,string>(); for (int i = 1; i < 9; i++) for (int j = 1; j < 9; j++) dic.Add(new KeyValuePair<int,int>(i, j), i + "aa" + j);
这两种不管怎么比都差不多
如果单考虑存的话肯定是普通数组最快了,单考虑取(by key)的话hash查找性能比较快了。
如果你要同时存和取那么就要掂量下,不要集中于这个点上,最好看下你后续的计算到底是什么样的。
这种问题,自己试试,但可能没多大意义,尤其是你的数量只有9个
这只是示例代码,实际数据有30多万条,我之前用Dictionary<KeyValuePair<int, int>,string>()反复存取值参与运算需要4-5个小时,搞不定才来求助有没有其它快速方法,谢谢
试试:
foreach (var key in dic.Keys)
{
Console.WriteLine(dic[key]);
}
我这里Key是KeyValuePair<int, int>的,我一直用dic[new KeyValuePair<int, int>(key, value)]提取,请问下有比较高效的方法没,求指教,谢谢