如果我的数据表具有相同数据类型的columns with suffix "_"
int。
如何获取所有这些列等于某个值的数据,通过LINQ说明1
。
EX:
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)
答案 0 :(得分:2)
你走了:
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
调用,并且可以在行查询中嵌入列查询,但为了提高效率,最好提前在列表中提取,如上面的代码段所示。