簡體   English   中英

我可以在bool類型上使用.Min()Linq擴展方法嗎?

[英]Can I use the .Min() Linq extension method on a bool type?

我想找一個集合中是否有任何錯誤的bool。 我可以使用以下代碼來查找它嗎?

this.MyList.Min(e => e.MyBool)

如果集合中存在錯誤,我希望這將返回false。

您可以使用(出於可讀性的原因重命名該集合):

bool anyFalse = myBools.Any(b => !b);

要么

bool anyFalse = !myBools.All(b => b);

兩者都是有效率的,因為他們打破了第一個false

如果集合中有復雜的對象(因為它是seerms),請使用:

bool anyFalse = MyList.Any(x => !x.MyBool);

要么

bool anyFalse = !MyList.All(x => x.MyBool);

是的,它會起作用,因為BooleanIComparable<Boolean>但它很笨拙 ,因此很難理解代碼的意圖

此外,您的代碼必須通過整個序列才能找出是否存在false ,並且如果序列為空則它將拋出。

改用All

MyList.All(item => item.MyBool)

如果序列中有任何false值,則返回false 如果序列為空,則All將返回true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM