2017-08-09 24 views
0

比方說,我有這樣的代碼:冷凝LINQ的多個手術室Where子句

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) 

行思考的東西,但是這似乎並不奏效。我錯過了什麼/有沒有更好的方法?

+1

首先,你的榜樣從1到3但你的範圍從0到2? – NetMage

+0

@NetMage我的錯。只是修正它在上面的代碼。 – Marcin

+1

順便說一句,我想你的意思是'myList = myList.Where(x => x [0]> .0005 || x [1]> .0005 || x [2]> .0005).ToList();'。你有它的方式,你不能編譯它看看重複'x =>'部分 – Vikhram

回答

3

您可以使用LINQ方法Any

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

我假設您正在查看x中的所有項目。否則,您將不得不使用LINQ擴展TakeSkip來獲取陣列的一部分。另外假設xIEnumerable<T>。需要注意的是,如果你希望xnull你將不得不處理它

+0

你打我:) – Kodaloid

1

你仍然需要做的或等同學歷 - 多個Where條款得到有效AND組合在一起:

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