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

它接近工会运作有人能为此写信吗?

Datatable Union using Linq

编辑:好的,现在问题已经改变了:
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...

请注意,如果没有勾选任何复选框,则不会得到任何结果。