c# - LinQ 数据行和列集合 C#

标签 c# linq

我有行集合和列名称作为 list ,有没有办法使用委托(delegate)将所有列名称传递到单行并将值作为集合返回? 或者还有其他最好的方法来实现这一点吗?

最佳答案

你是说你有一个 DataRow您想要每列中的值吗?

那么您所需要的就是:

object[] values = row.ItemArray;

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

IEnumerable<string> columnNames = GetDesiredColumnNames();

var values = columnNames
    .ToDictionary(name => name, name => row[name]);

当然,您也可以使用相同的 LINQ 魔法来获取 Dictionary<string, object>对于所有列(如果 object[] 的描述性不足以满足您的喜好):

IEnumerable<string> columnNames = row.Table.Columns
    .Cast<DataColumn>()
    .Select(column => column.ColumnName);

var values = columnNames
    .ToDictionary(name => name, name => row[name]);

关于c# - LinQ 数据行和列集合 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255666/

相关文章:

c# - 在内存中没有负载基础的情况下使用 LinqToSql

c# - 如何从另一个日期时间中减去一个日期时间?

格式为 dd.MM.yyyy 的 c# SQL 查询错误

c# - 将JObject转换为匿名类型

c# - 如何在 LINQ to Entities (Entity Framewok) 中编写 SQL ORDER BY {value} DESC LIMIT 语句?

c# - linq Last() 如何确定最后一项?

c# - Linq to XML 将元素添加到特定子树

c# - 如何从字符串中获取字体?

c# - Func<int, int> 的数学等式

c# - 为什么我的图像无法打印到 PrintDocument?