【发布时间】:2020-06-03 19:24:18
【问题描述】:
我有一个数据表dt,其中包含一列和一个字符串列表。如果我想将其更改为一个列表(例如,为了更容易与另一个列表进行比较),我会默认为:
var ls = new List<string>();
foreach (DataRow dr in dt.Rows)
{
ls.Add(dr["COLUMN_NAME"].ToString());
}
我认为不可能比这更有效,但是有没有更短的方法来编写这个,也许使用 LINQ?
【问题讨论】:
-
使用 Linq 编写的方法越短,效率越高
-
好吧,您可以通过使用像数组这样的固定大小的结构并用
for替换foreach来对此进行微优化,但我怀疑这种差异甚至不会很明显。 -
这很好。在这一点上,我不需要担心微优化,尤其是因为我的数据通常少于 500 个值。
-
这能回答你的问题吗? LINQ query on a DataTable
-
适应所选的欺骗是微不足道的。从靠近到选择关闭。
myDataTable .AsEnumerable() .Select(myRow => myRow.Field<TheType>("TheColumnName"));