从列LINQ获取数据表的所有行元素c#

时间:2017-09-26 16:50:10

标签: c# linq datatable datarow

我有一个DataTable,其列名为“Part Number”和其他各种列。我想抓住“部件号”列中的所有元素。此列有时可能位于不同的位置,因此我不能只分配特定的Item Array索引。我想用LINQ来做。

现在,我只是抓住第一栏中的所有内容。但是,我想将其设置为根据列标题获取数据。

var parts = from row in dataTable.AsEnumerable()
            where true != string.IsNullOrWhiteSpace((row.ItemArray[0] == DBNull.Value)
                ? string.Empty
                : row.ItemArray[0].ToString())
            select row.ItemArray[0];

1 个答案:

答案 0 :(得分:1)

您可以将DataColumnCollection索引为DataColumn,如下所示:

// Find the DataColumn by column name
string columnName = "Part Number";
DataColumn partNumber = dataTable.Columns[columnName];

var parts = from row in dataTable.AsEnumerable()
            where !string.IsNullOrWhiteSpace(row[partNumber].ToString())
            select row[partNumber];

DataTable担心在ItemArray内找到索引。您只需知道列名称。

有关详细信息,请参阅documentation