LINQ根据CheckBoxList的选定值过滤值

本文关键字:过滤 根据 CheckBoxList LINQ | 更新日期: 2023-09-27 18:14:03

我试图从动态生成的CheckBoxList中的值使用where子句作为LINQ查询的过滤标准。

有四个字段需要根据CheckBoxList的值进行过滤。

我如何遍历每个字段并将其与CheckboxList的选定值进行比较?

我添加了"checkBoxListTreeTypes"。以"selected values"为例。

示例代码如下…

    IEnumerable<IGrouping<string, Forest>> forestQuery =
    from test in forest
    where (test.tree1 == checkBoxListTreeTypes.selectedvalues)
    && (test.tree2 == checkBoxListTreeTypes.selectecdvalues)
    && (test.tree3 == checkBoxListTreeTypes.selectecdvalues)
    && (test.tree4 == checkBoxListTreeTypes.selectecdvalues)
    orderby test.name
    group test by test.TrunkSize;

LINQ根据CheckBoxList的选定值过滤值

检查CheckBoxList的方法是这样的(没有经过测试,但是您已经明白了):

checkBoxListTreeTypes.Items.Any(item => item.Selected && item.Value==test.tree1) &&
checkBoxListTreeTypes.Items.Any(item => item.Selected && item.Value==test.tree2) &&
checkBoxListTreeTypes.Items.Any(item => item.Selected && item.Value==test.tree3) &&
checkBoxListTreeTypes.Items.Any(item => item.Selected && item.Value==test.tree4)

你也可以把你的四棵树放在一个数组中:

string[] trees = new string[] { test.tree1, test.tree2, test.tree3, test.tree4 };

然后test:

checkBoxListTreeTypes.Items.Count(item => item.Selected && trees.Contains(item.Value)) == 4