我尝试了这个LINQ代码从数据表中删除空行
NewDt = NewDt.Rows.Cast(Of DataRow)().
Where(Function(row) Not row.ItemArray.All(Function(field) TypeOf field Is System.DBNull OrElse String.Compare(TryCast(field, String).Trim(), String.Empty) = 0)).CopyToDataTable()
但是显示错误
Lambda parameter 'row' hides a variable in an enclosing block, a previously defined range variable, or an implicitly declared variable in a query expression.
任何想法?
是-读取错误信息。在方法中已经有了一个名为row
的变量,因此需要为lambda表达式中的参数选择一个不同的名称。例如:
NewDt = NewDt.Rows.Cast(Of DataRow)().
Where(Function(x) Not x.ItemArray.All(
Function(field) TypeOf field Is System.DBNull _
OrElse TryCast(field, String).Trim() = "").
CopyToDataTable()