性能以找到特定的数据行c#

时间:2014-10-30 00:24:08

标签: performance linq c#-4.0

大家晚上,

我正在尝试更新我拥有的数据表中的特定列。 表大约有500行。

我想根据某个列找到行。我一直在阅读table.select和linq之间的区别,从我读到的LINQ应该是很快的。

所以我尝试了两种,我放了秒表,结果不同。

                                    string time1 = "";
                                string time2 = "";
                                string time3 = "";

                                sw.Start();
                                DataRow foundRowA = datatableTodaysMarkets.Select("BBM_Symbol = '" + newBBM + "'").FirstOrDefault();
                                sw.Stop();
                                time1 = sw.Elapsed.ToString();

                                sw.Reset();
                                sw.Start();
                                DataRow foundRow = datatableTodaysMarkets.Rows.Cast<DataRow>().Where(r => r[0].ToString() == newBBM).FirstOrDefault();
                                sw.Stop();
                                time2 = sw.Elapsed.ToString();

                                sw.Reset();
                                sw.Start();
                                DataRow results = (from myRow in datatableTodaysMarkets.AsEnumerable()

                                              where myRow.Field<string>("BBM_Symbol") == newBBM

                                              select myRow as DataRow).FirstOrDefault();
                                sw.Stop();
                                time3 = sw.Elapsed.ToString();

                                MessageBox.Show(time1 + "\n" + time2 + "\n" + time3);

结果在截图中 speed test

我的第一个问题是我知道test 1是一个数据表选择语句 和测试3是linq。 什么是考试2。

另外,这是否表明测试2比其他选项更好?我可以把它作为福音,还是可以改变的许多不同因素。

感谢!!!

0 个答案:

没有答案