【问题标题】:How to read data after converting from DataTable to an IEnumerable<Dictionary<string, object>>?从 DataTable 转换为 IEnumerable<Dictionary<string, object>> 后如何读取数据?
【发布时间】:2010-11-02 04:16:43
【问题描述】:

我将 System.Data.DataTable 转换为类型 IEnumerable[Dictionary[[string, object]] 并将其命名为 myDataTable。现在,如何使用 linq 读取每一行及其值?

    dtReports = new myDataTable(e.Result);                 

    foreach (myDataRow row in dtReports.Rows)
    {
        string group = row.GetType().GetProperty("Group").GetValue(row, null);
    }  

由于某种原因,这不起作用。

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    假设“组”是列的名称...

    使用 LINQ:

     var listOfGroups = from row in myDataTable.AsEnumerable()
                        select row["Group"];
    

    或者,使用 LINQ 扩展方法和 lambda:

     var listOfGroups = myDataTable.AsEnumerable().Select(row => row["Group"]);
    

    【讨论】:

    • 我只是想读取某一列的行值。我想我得到了答案。你只需要说 pair.GetType().GetProperty("Group").GetValue(对,空)
    • 您正在使用反射,这很昂贵,我可以向您保证不必要(而且速度很慢)。
    • 你是对的,使用反射会变慢。您使用 Linq 的解决方案对我有用.. 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多