我有行集合和列名称作为 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/