LINQ on Datatable查找所有行都是空的

我有一个从Excel电子表格中读取数据的代码,我已经走了这么远,有一些关于SO的答案

DataTable dt = ds.Tables[0]; dt = dt.AsEnumerable().Where((row, index) => index > 4).CopyToDataTable(); DataTable filteredRows = dt.Rows.Cast<DataRow>().Where(row => row.ItemArray.All(field => !(field is System.DBNull))).CopyToDataTable(); 

有这个

 dt.Rows.Cast<DataRow>().Where(row => row.ItemArray.All(field => (field is System.DBNull))) 

返回空的所有行。

我也尝试过Any ,它没有给出所需的输出

上面的代码适用于所有字段不为NULL的情况,即每列都有一个字段。 这免除了所有有1列丢失的行,但这不是我想要的。

我想豁免所有列都为空的所有行。

只要将NOT( ! )移出一个等级。 您希望“所有行都为空”的项目不是“真”,而不是“所有行都不为空”。

 DataTable filteredRows = dt.Rows.Cast<DataRow>() .Where(row => !row.ItemArray.All(field => field is System.DBNull)) .CopyToDataTable(); 

你有没有尝试过滤任何领域,而不是所有?

 DataTable filteredRows = dt.Rows.Cast<DataRow>().Where(row => row.ItemArray.Any(field => !(field is System.DBNull))).CopyToDataTable();