有什麼區別:Enumerable.Where(謂語)與Enumerable.All(謂語)
items.Where(i => i.Foo == "bar")
和
items.All(i => i.Foo == "bar")
?看起來他們會做同樣的事情 - 這究竟是這種情況,還是他們以某種微妙的方式表現不同?
有什麼區別:Enumerable.Where(謂語)與Enumerable.All(謂語)
items.Where(i => i.Foo == "bar")
和
items.All(i => i.Foo == "bar")
?看起來他們會做同樣的事情 - 這究竟是這種情況,還是他們以某種微妙的方式表現不同?
Enumerable.All返回一個布爾值,該值指示所討論的所有元素是否滿足由謂詞表達的條件。
Enumerable.Where返回一個通用的IEnumerable集合,它只包含滿足上述條件的項目。
我沒有看到從這些LINQ函數返回的結果之間有任何共同之處 - 一個是bool,另一個是集合。是的,它們在語法上相似,但在完全不同的情況下使用。
一個簡單的例子: 比方說,你有一個int列表:
列表sampleList =新列表{3,4,6,9};
如果運行
sampleList.All(v => v % 3 == 0);
,因爲4不滿足條件,你會得到錯誤的。
如果運行
sampleList.Where(V => v%的3 == 0);
,您將收到一條的IEnumerable包含滿足條件的值:3,6和9/
items.Where
- 根據條件過濾並返回過濾對象的集合。
items.All
- 返回true
集合中的所有對象是否滿足條件,否則返回false
。
看起來不完全一樣的東西嗎?
哦,真不錯,我在想什麼? :)當我發佈這個時,一定是半睡半醒! – ekolis