![](/img/trans.png)
[英]LINQ: How do I find all the objects whose Array property contains a particular value using LINQ
[英]How to find out if one element in array has false value for property and if all elements have true value using Linq
我有幾個對象的數組,它們有一個isClosed
bool屬性。 我想知道如何確定:
如果所有值都為真
如果這些值中只有一個為假
使用Linq。
您可以這樣解釋您的問題:
我想知道如何確定:
false
計數= 0 false
= 1 您可以簡單地使用LINQ Count
:
switch (collection.Count(x => !x.isClosed))
{
case 0:
// case 1, all values are true
break;
case 1:
// case 2, exactly one of these values is false
break;
default:
// other cases, more than 1 false value
break;
}
使用這種方法,您將只遍歷您的collection
一次。
List<Item> items = new List<Item>()
{
new Item() { IsClosed = true },
new Item() { IsClosed = true },
new Item() { IsClosed = true }
};
var allValuesAreTrue = items.All(it => it.IsClosed);
var onlyOneValueIsTrue = items.Count(it => it.IsClosed) == 1;
使用Linq .all喜歡
它告訴您集合中的所有元素是否都符合特定條件。 它是.NET Framework中System.Linq命名空間的一部分。 它返回true或false。
if (array.All(element => element.isClosed))
{
return true;
}
您可以使用以下代碼滿足兩個所需的要求:
var list = new List<MyClass>();
var myClass1 = new MyClass {IsClosed = true};
var myClass2 = new MyClass { IsClosed = true };
var myClass3 = new MyClass { IsClosed = true };
list.Add(myClass1);
list.Add(myClass2);
list.Add(myClass3);
var response=list.All(x => x.IsClosed);
如果列表中的所有元素都具有相同的值,則返回true。
var count = arr.Count(a => a.isClosed);
if(count == arr.Length)
//all
else if(count == 1)
//only one
else
//not all, but more than one
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.