同样是取出Value,测试了下,感觉Lambda表达式更耗时间,求解答
Stopwatch sw = new Stopwatch(); sw.Start();//开始计时 var sj = DTB();//加载数据 int X = 3; int Y = 9; //var CH = new KeyValuePair<int, int>(X, Y);//00:00:00.0006309 //chushi = sj[CH]; //chushi = sj.GetVL(X,Y);//00:00:00.0007733 chushi = sj.Where(x => x.Key.Key == X && x.Key.Value == Y).FirstOrDefault().Value;// 00:00:00.0050164 sw.Stop();//结束计时 Console.WriteLine(sw.Elapsed);
先把代码放上来看看
Show your code.
题主为什么要纠结这些问题。
你的sj是一个字典吧。
字典的算法是优化过的。
从字典里取值肯定比你没有任何优化来的快。
主要是如果按这个速度的话,计算完成大约需要4-5个小时左右
@梦天涯: - -||| (吓尿
多开几个线程吧。
@梦天涯: 如果sj是字典,你后面根本没用上字典的性能,你后面的写法又对字典做一次遍历这样能快么?
@Daniel Cai: 如果传入两个int要提取Dictionary<KeyValuePair<int, int>, string>中的Value的话,要如何做呀,除了new KeyValuePair<int, int>(X, Y)外,有其它取值方法没,求指教,谢谢
感觉?