【问题标题】:LinQ Data Row and Column collection C#LinQ 数据行和列集合 C#
【发布时间】:2010-07-15 21:04:32
【问题描述】:

我有行集合和列名作为 list ,有没有办法使用委托将所有列名传递给单行并将值作为集合返回? 或者有没有其他最好的方法来完成这个?

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    你是说你有一个DataRow 并且你想要每一列中的值?

    那么你只需要这个:

    object[] values = row.ItemArray;
    

    如果您只想要 特定 列中的值,我建议您使用一些 LINQ 魔法以 Dictionary<string, object> 的形式将它们提供给您:

    IEnumerable<string> columnNames = GetDesiredColumnNames();
    
    var values = columnNames
        .ToDictionary(name => name, name => row[name]);
    

    当然,您也可以使用相同的 LINQ 魔法为 所有 列获取 Dictionary&lt;string, object&gt;(如果 object[] 的描述性不足以满足您的喜好):

    IEnumerable<string> columnNames = row.Table.Columns
        .Cast<DataColumn>()
        .Select(column => column.ColumnName);
    
    var values = columnNames
        .ToDictionary(name => name, name => row[name]);
    

    【讨论】:

    • 没错,丹,魔法确实很棒 :-)。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    相关资源
    最近更新 更多