Datatable Union using Linq
本文关键字:Linq using Union Datatable | 更新日期: 2023-09-27 18:27:55
我的数据表dt的列如下
名称、价值、密钥、IsMarkets、IsBudgets、IsPrograms
我有3个复选框chkbxBudgetsSearch、chkbxMarketsSearch和chkbxProgramsSearch
我想在以下条件下过滤dt
如果chkbxMarketsSearch.IsChecked==true所有IsMarkets=True的行都应显示
如果chkbxBudgetsSearch.IsChecked==true所有IsBudgets=True的行都应显示
类似于程序
如果同时单击了这两个复选框,则
IsMarkets=True且IsBudgets=False/IsMarkets=False且IsBudget=True的所有行/IsMarkets=True和IsBudgets=True应显示
注意:它不需要只有IsMarkets=True和IsBudgets=True
它接近工会运作有人能为此写信吗?
var result = Enumerable.Empty<DataRow>();
var linqTable = table.AsEnumerable();
if (chkbxMarketsSearch.IsChecked)
{
results = results.Union(linqTable.Where(row => row.Field<bool>("IsMarkets"));
}
if (chkbxBudgetsSearch.IsChecked)
{
results = results.Union(linqTable.Where(row => row.Field<bool>("IsBudgets"));
}
if (chkbxProgramsSearch.IsChecked)
{
results = results.Union(linqTable.Where(row => row.Field<bool>("IsPrograms"));
}
// Probably best to call `ToList()` here before doing much more work...
请注意,如果没有勾选任何复选框,则不会得到任何结果。