嗨我想了解Linq中All和ForEach之間的區別。Linq全是Vs Foreach
我知道All用於檢查一個條件,並在謂詞滿足時返回bool。但是當我在謂詞裏面有一個賦值時,它可以正常工作,不會抱怨。
ForEach在這種情況下的用途是什麼?或者是什麼的情況下使得使用的ForEach
的這可能是有點傻,但需要知道的意義
嗨我想了解Linq中All和ForEach之間的區別。Linq全是Vs Foreach
我知道All用於檢查一個條件,並在謂詞滿足時返回bool。但是當我在謂詞裏面有一個賦值時,它可以正常工作,不會抱怨。
ForEach在這種情況下的用途是什麼?或者是什麼的情況下使得使用的ForEach
的這可能是有點傻,但需要知道的意義
實際上有一個在LINQ沒有ForEach
(故意)。有一個方法,它在列表中的每個對象上運行一個操作。
主要區別是All
是一個過濾器 - 如果所有項目都匹配謂詞,則返回true。 存在以產生副作用 - 您對列表中的每個項目執行一些操作。
一般來說,我會避免使用引起副作用的LINQ查詢(即:不要執行查詢中的操作),而是在之後將它們放入foreach
循環中。這使得意圖非常清晰,這有助於可維護性。
請注意實際上是從WinRT框架中刪除的,因爲它確實沒有增加很多價值。 Eric Lippert寫了great article on the subject使用foreach
而不是。
我想知道LINQ有一個foreach的可能性,以及該文章的不錯鏈接 – Alan
'ForEach'不是LINQ的一部分。 LINQ是功能性的,因此它沒有像ForEach這樣的東西。 –