【问题标题】:Extract column from DataTable从数据表中提取列
【发布时间】:2012-10-06 06:25:32
【问题描述】:

有没有办法从 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);
}

有没有更好和/或更快的方法来做到这一点?

【问题讨论】:

    标签: c# c#-4.0 datatable


    【解决方案1】:

    你可以使用Linq-To-DataTable

    List<KeyValuePair<string, double>> extract = _dataTableTest.AsEnumerable()
              .Select(r => r.Field<KeyValuePair<string, double>>("Selection"))
              .ToList();
    

    请注意,您需要添加using System.Linq;,这在性能方面并不是“更快”。它还在内部使用循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多