List上未定义数量的Or操作
本文关键字:Or 操作 未定义 List | 更新日期: 2023-09-27 17:58:58
我有一个包含n个条目的列表。List<MyClass> result
我有另一个带有n过滤器选项的列表List<string> filters
我想要的是返回另一个List过滤后的结果List。
对于AND操作来说,它很简单:
foreach (var filter in filters)
{
results = results.Where(x => x.Result == filter);
}
但是如何为OR运算编码呢?
在这种情况下,您可以将Where
与Any
结合使用:
results = results.Where(x => filters.Any(f => f == x.Result));
https://msdn.microsoft.com/library/bb534972(v=vs.110).aspx
其他方式:
//Contains, see DAXaholic's post
results = results.Where(x => filters.Contains(x.Result));
https://msdn.microsoft.com/library/bhkz42b3(v=vs.110).aspx
//List Extension method 'Exists'
results = results.Where(x => filters.Exists(f => f == x.Result));
https://msdn.microsoft.com/library/bfed8bca(v=vs.110).aspx
这样的东西应该适用于
results.Where(x => filters.Contains(x.Result))