我正在尝试使用动态生成的CheckBoxList中的值的where子句作为LINQ查询的过滤条件。
有四个字段需要根据CheckBoxList的值进行过滤。
我如何浏览每个字段并将其与CheckboxList的选定值进行比较?
我添加了“checkBoxListTreeTypes.selectecd 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;
答案 0 :(得分:0)
这是你通过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 };
然后测试:
checkBoxListTreeTypes.Items.Count(item => item.Selected && trees.Contains(item.Value)) == 4