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;
检查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