如何使用 linq 获取引用数据表字段值的数据行数组

本文关键字:数据 数组 字段 数据表 何使用 linq 获取 引用 | 更新日期: 2023-09-27 18:36:52

我想使用 linq 从其字符串类型 ColumnA 不为 null 或取决于其长度>0 的数据表中获取数据行数组,因此我可以使用 Indexof() 方法获取行索引来处理其他事情。

ColumnA ColumnB ColumnC
A0       B0       C0
Null     B1       C1
A2       B2       C2
Null     B3       C3

我的林克状态:

DataRow[] rows =  myDataTable.Select("ColumnA is not null").Where(row=>row.Field<string>("ColumnA").Length>0);

有人可以提供帮助吗?

如何使用 linq 获取引用数据表字段值的数据行数组

使用 AsEnumerable ,你必须添加System.Data.DatasetExtensions引用和导入System.Data,将数据表转换为可枚举:

要获取索引:

int desiredIndex =
            dt.AsEnumerable().ToList().
            FindIndex(r => !string.IsNullOrEmpty(r.Field<string>("ColumnA")) &&
            r.Field<string>("ColumnA").Length > 0);

要获取匹配的行列表,请执行以下操作:

  List<DataRow> RowFilter = 
            dt2.AsEnumerable().ToList().Where
            (r => !string.IsNullOrEmpty(r.Field<string>("ColumnA")) &&
            r.Field<string>("ColumnA").Length > 0).ToList();

获取匹配行数组:

  DataRow[] drArray = dt2.AsEnumerable().ToList().Where
       (r => !string.IsNullOrEmpty(r.Field<string>("ColumnA")) &&
       r.Field<string>("ColumnA").Length > 3).ToArray();