我有一個List<bool>
有很多值。檢查列表中的每個單項是否等於false
的最有效方法是什麼?布爾表清單檢查列表中的每個項目是否爲假
回答
你可以使用Enumerable.Any
它會發現滿足條件的第一場比賽。正如Habib正確地說過使用Any作爲Enumerable.All會返回true爲空的bool列表。
!lst.Any(c=> c == true);
lst.All(c=> c == false);
+1,最好使用'Any',因爲'Enumerable.All'會爲空的bool列表返回true。 – Habib
+1這比All()更好,因爲它總是迭代整個列表;當它找到一個時,它會停止 –
@AdrianCarneiro Uhm ..?這對我來說沒有意義。在這種情況下,兩者都很懶惰,需要查看相同數量的元素。 – user2864740
您可以使用LINQ's
All
方法:
這將返回false
立即如果它發現等於true
的值。
我使用IEnumerable.Any/All同意。但是,我不同意當前選票最多的答案(在撰寫本文時這是錯誤的)以及Any vs All的一些相關評論。
這些以下操作是等效語義上。請注意,這些否定應用於這兩個內部,謂詞以及操作結果。
!l.Any(x => f(x))
l.All(x => !f(x))
現在,在這種情況下,我們因此尋找:
如果不有任何真實價值的情況。
!l.Any(x => x) // f(x) = x == true
或者,
這是每值不真實的情況。
l.All(x => !x) // f'(x) = !f(x) = !(x == true)
沒有什麼特別的空名單的結果是一樣的:例如!empty.Any(..)
是錯誤的,因爲empty.All(..)
和上述等價關係仍然有效。
另外,兩個兩種形式都被懶惰地評估,並且需要在中進行相同數量的評估;在內部,對於序列實現而言,差異僅僅是否定對謂詞和結果值的檢查。
- 1. 檢查每個列表項目是否爲
- 2. 檢查列表中的每個特定項目是否在散列表中?
- 3. 檢查列表中是否存在多個單詞並返回布爾列表
- 4. 簡單的方法來檢查項目是否在列表中?
- 5. 檢查列表項是否包含另一個項目列表中的屬性
- 6. 檢查列表中的兩個項目是否相同?
- 7. 檢查項目是否在列表中並刪除舊項目
- 8. 檢查條件是否在布爾列表中保留
- 9. T-SQL:檢查一個小列表中的項目是否在大列表中
- 10. LINQ:查找列表中包含項目清單中的項目
- 11. 檢查列表中的每一個列表是否爲空Common Lisp中
- 12. 檢查以查看是否在另一個表中選擇的項目列表
- 13. 檢查列表中的所有項目是否是另一個列表中的項目之一
- 14. Python檢查一個項目是否在列表中
- 15. Prolog遞歸檢查一個項目是否在列表中
- 16. 遍歷列表並檢查布爾屬性是否在列表中
- 17. 簡單列表項檢查點擊檢查多個項目
- 18. 檢查兩個列表是否有相同的項目
- 19. 如何檢查布爾值列表是否包含值?
- 20. 檢查每個列表項的語句
- 21. 檢查列表中的項目是否存在於字典中
- 22. vba檢查下拉列表中的項目是否被選中?
- 23. 哪種方式檢查清單中的項目是否正確
- 24. 檢查列表中每個項目的空值
- 25. 列表查看每個項目的ForeColor
- 26. 使用Linq檢查布爾表達式是否爲真
- 27. Java檢查布爾值是否爲空
- 28. 檢查是否單選按鈕中的一個項目檢查
- 29. 檢查是否選擇了下拉列表中的項目
- 30. 檢查網頁列表中的項目是否縮進
list.Any(x => x) –