2017-09-26 70 views
1

我有一个DataTable的列名称“零件号”和各种其他列。我想抓取“零件号”栏中的所有元素。此列有时可能位于不同的位置,因此我不能只分配特定的项目数组索引。我想用LINQ来做到这一点。从列LINQ c获取数据表的所有行元素#

现在,我只是抓住第一栏中的所有内容。但是,我想要设置此按照列标题获取数据。

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]; 
+0

不知道确切的语法关闭我的头顶上,但类似: 'var rows = datatable.rows.AsEnumerable(); var parts = rows.Select(r => string.IsNullOrWhiteSpace(r [“Parts”])?string.Empty:r [“Parts”]);' – Muckeypuck

回答

1

您可以索引DataColumnCollectionDataColumn,像这样:

// 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

相关问题