如何根据列后缀从数据表中过滤数据

任何名称

如果我有一个具有columns with suffix "_"相同数据类型int的数据表

如何1通过LINQ获得所有这些列等于某个值的数据

前任 :

emp_num  day_   penalty_   role_  abscence

23       12       1          2       true
24        1       1          1       true
76        2       5          1       false
55        1       1          1       false

我想得到这样的结果:

24        1       1          1       true
55        1       1          1       false

因为数据表的列数是可变的,所以我希望以某种通用方式在这些列上进行投影,如下所示:

DT.AsEnumerable().Where(all columns with suffix "-" = 1)
伊万·斯托夫(Ivan Stoev)

干得好:

var columns = DT.Columns.Cast<DataColumn>()
    .Where(c => c.DataType == typeof(int) && c.ColumnName.EndsWith("_"))
    .ToList();
var query = DT.AsEnumerable().Where(row => columns.All(c => row.Field<int>(c) == 1));

columns强烈不需要变量。ToList可以删除该调用,并且可以将列查询嵌入行查询中,但是为了提高效率,最好像上面的代码片段一样,预先将其提取到列表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章