c# - 根据多个条件通过 linq 过滤集合
问题描述
我有我想基于的过滤集合multiple criteria
。
那是我的过滤器类:
class CriteriaClass {
public DertEnum? DertEnum { get; set; }
public string UserName { get; set; }
CriteriaClass() {
DertEnum = null;
UserName = string.Empty;
}
}
我的问题是如何在这里说 ifcriteriaClass.DertEnum
为 null 不将其包含在 linq 过滤器中。criteriaClass.UserName
如果是的话也一样empty
。如何使用不进入if/else.
我相信有办法。
_data = new ObservableCollection<MyModel>(_data.Where(w =>
(w.DertEnum.Equals(EnumTools.T(criteriaClass.WarehouseActionTypeEnum)))
&& (w.UserName.Equals(criteriaClass.UserName))));
解决方案
向 where 条件添加逻辑或为空检查:
_data = new ObservableCollection<MyModel>(_data.Where(w =>
((w.DertEnum is null || w.DertEnum.Equals(EnumTools.T(criteriaClass.WarehouseActionTypeEnum))))
&& (w.UserName.Equals(criteriaClass.UserName))));
推荐阅读
- vmware-clarity - 移动到分页网格中的下一页后,Clarity Datagrid 列输入过滤器失去对第一次按键的关注
- python - 如何解决文件“",第 1 行语法错误:语法无效?
- javascript - 为什么样式属性会改变 p 块颜色,但样式表不会?
- typescript - Typescript:获取事件总线中事件的类型推断
- javascript - 我正在尝试从烧瓶应用程序获取数据,但我得到这个“未捕获的 ReferenceError:_data 未定义”
- python-3.x - 在 Python3 中查找整数和字符串列表中最小数字的索引
- miragejs - 有没有办法在不侧载或嵌入数据的情况下显示相关模型 ID
- regex - power shell中的正则表达式将双引号之间的字符转换为大写
- c# - Azure 函数从配置中访问连接字符串
- python - 有没有更优雅的方式在 Python 3.7 中编写列表连接函数?