如何根据几个复选框过滤List <CustomClass>

尼尔斯

我有一个XML文件转换为列表。PaintClass具有多个参数,例如颜色(红色或橙色或蓝色)或纹理(平滑或光泽)等。

现在,我有几个复选框,以便用户可以确定他希望看到的PaintClass。例如,他能够同时选择红色,橙色和蓝色,然后每个PaintClass都应显示。但是,当他选中“平滑”复选框时,仅应显示具有“平滑”纹理的红色/蓝色/橙色油漆。

代替许多If语句的最佳方法是什么?

亲切的问候,尼尔斯

吉拉德·纳曼(Gilad Naaman)

一个简单的解决方案是:

List<Color> allowedColors = new List<Color>();
if (redCheckBox.IsChecked)
  allowedColors.Add(Color.Red);
.
.
.
List<Texture> allowedTextures = new List<Texture>();
if (smoothCheckBox.IsChecked)
  allowedTextures.Add(Texture.Smooth);
.
.
.

filtered = paintList.Where( p => allowedColors.Contains(p.Color) &&
                              allowedTextures.Contains(p.Texture));

另一种方法是将颜色值存储在复选框的Tag属性内,然后遍历复选框:

redCheckBox.Tag = Color.Red;
blueCheckBox.Tag = Color.Blue;
// etc...

List<Color> colors = new List<Color>();
foreach (Object control in checkboxContainer.Children)
{ 
  var c = (control as CheckBox);
  if ( null == c )
    continue;
  colors.Add(c.Tag as Color);
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从JSONArray到List <CustomClass>

来自分类Dev

将List <Object>转换为List <CustomClass>

来自分类Dev

如何将[CustomClass]转换为[AnyObject]

来自分类Dev

使用Linq查询解析List <CustomClass>中的XML

来自分类Dev

如何使用ng2-bootstrap DatePicker的customClass属性?

来自分类Dev

C#如何将List <object []>强制转换为List <customClass>

来自分类Dev

如何使用反射来显示具有List <CustomClass>的Web服务的属性

来自分类Dev

如何根据单击的复选框过滤JSON?

来自分类Dev

查找List <customclass>中存在的不在数据表中的项目

来自分类Dev

将List <T>转换为包含T.CustomClass属性的数据表

来自分类Dev

根据选中的复选框过滤模型

来自分类Dev

根据复选框过滤对象数组

来自分类Dev

根据复选框值过滤div

来自分类Dev

ArrayList <CustomClass>到JsonArray

来自分类Dev

如何根据选中的复选框禁用复选框?

来自分类Dev

CustomClass 复制错误:AttributeError: 'CustomClass' 对象没有属性 'copy'

来自分类Dev

“ AnyObject?” 不是CustomClass的子类型

来自分类Dev

为customClass列表定义方法

来自分类Dev

“ AnyObject?” 不是CustomClass的子类型

来自分类Dev

在检查了多个复选框的几个问题后,如何停止检查复选框

来自分类Dev

根据选定的复选框和选择字段过滤数组

来自分类Dev

根据多个复选框条件过滤数组

来自分类Dev

根据复选框显示/隐藏列表项(过滤)

来自分类Dev

根据复选框状态过滤Leaflet Geojson对象

来自分类Dev

几个复选框和验证jQuery

来自分类Dev

将ArrayList <CustomClass>存储到SharedPreferences中

来自分类Dev

将对象从MainWindow传递到CustomClass

来自分类Dev

如何过滤从Angular中的复选框值排序的列表?

来自分类Dev

如何使用复选框输入来过滤结果?

Related 相关文章

  1. 1

    从JSONArray到List <CustomClass>

  2. 2

    将List <Object>转换为List <CustomClass>

  3. 3

    如何将[CustomClass]转换为[AnyObject]

  4. 4

    使用Linq查询解析List <CustomClass>中的XML

  5. 5

    如何使用ng2-bootstrap DatePicker的customClass属性?

  6. 6

    C#如何将List <object []>强制转换为List <customClass>

  7. 7

    如何使用反射来显示具有List <CustomClass>的Web服务的属性

  8. 8

    如何根据单击的复选框过滤JSON?

  9. 9

    查找List <customclass>中存在的不在数据表中的项目

  10. 10

    将List <T>转换为包含T.CustomClass属性的数据表

  11. 11

    根据选中的复选框过滤模型

  12. 12

    根据复选框过滤对象数组

  13. 13

    根据复选框值过滤div

  14. 14

    ArrayList <CustomClass>到JsonArray

  15. 15

    如何根据选中的复选框禁用复选框?

  16. 16

    CustomClass 复制错误:AttributeError: 'CustomClass' 对象没有属性 'copy'

  17. 17

    “ AnyObject?” 不是CustomClass的子类型

  18. 18

    为customClass列表定义方法

  19. 19

    “ AnyObject?” 不是CustomClass的子类型

  20. 20

    在检查了多个复选框的几个问题后,如何停止检查复选框

  21. 21

    根据选定的复选框和选择字段过滤数组

  22. 22

    根据多个复选框条件过滤数组

  23. 23

    根据复选框显示/隐藏列表项(过滤)

  24. 24

    根据复选框状态过滤Leaflet Geojson对象

  25. 25

    几个复选框和验证jQuery

  26. 26

    将ArrayList <CustomClass>存储到SharedPreferences中

  27. 27

    将对象从MainWindow传递到CustomClass

  28. 28

    如何过滤从Angular中的复选框值排序的列表?

  29. 29

    如何使用复选框输入来过滤结果?

热门标签

归档