在Linq Where子句中缩小多个OR

时间:2017-08-09 18:50:35

标签: c# linq

假设我有这段代码:

myList = myList.Where(x => x[0] > .0005 || x[1] > .0005 || x[2] > .0005).ToList();

必须有一种方法可以在可以忽略的范围内做到这一点吗?

我正在思考

的内容
myList = myList.EnumerableRange(0, x.Count).Where(i => x[i] > .0005)

但这似乎不起作用。我缺少什么/有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用LINQ方法Any

myList = myList.Where(x => x.Any(d => d > .0005)).ToList();

我假设您要检查x中的所有项目。否则,您将不得不使用LINQ扩展TakeSkip来获取数组的切片。还假设xIEnumerable<T>。请注意,如果您希望xnull,则必须处理它

答案 1 :(得分:1)

您仍然需要执行或等效 - 多个Where子句有效地进行AND运算:

yList = myList.Where(x => Enumerable.range(0, x.Count).Any(i => x[i] > .0005)).ToList();