有没有办法从DataTable中的单个列中提取所有项目,而不是使用For Each循环?
例如,以下内容从DataTable的单个列中的每一行构建KeyValuePair列表
List<KeyValuePair<string, double>> extract = new List<KeyValuePair<string, double>>();
foreach (DataRow item in _dataTableTest.Rows)
{
KeyValuePair<string, double> selection = (KeyValuePair<string, double>)item["Selection"];
extract.Add(selection);
}
有更好的方法和/或更快的方法吗?
答案 0 :(得分:4)
您可以使用Linq-To-DataTable
List<KeyValuePair<string, double>> extract = _dataTableTest.AsEnumerable()
.Select(r => r.Field<KeyValuePair<string, double>>("Selection"))
.ToList();
请注意,您需要添加using System.Linq;
,并且在性能方面这不是“更快”。它还在内部使用循环。