[英]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);
是的,它會起作用,因為Boolean
是IComparable<Boolean>
但它很笨拙 ,因此很難理解代碼的意圖 。
此外,您的代碼必須通過整個序列才能找出是否存在false
,並且如果序列為空則它將拋出。
改用All
:
MyList.All(item => item.MyBool)
如果序列中有任何false
值,則返回false
。 如果序列為空,則All
將返回true
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.