Enumerable.All<TSource> メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
シーケンスのすべての要素が条件を満たしているかどうかを判断します。
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static bool All(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static bool All<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member All : seq<'Source> * Func<'Source, bool> -> bool
<Extension()>
Public Function All(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As Boolean
型パラメーター
- TSource
source
の要素の型。
パラメーター
- source
- IEnumerable<TSource>
述語を適用する要素を格納している IEnumerable<T>。
戻り値
指定された述語でソース シーケンスのすべての要素がテストに合格する場合は true
。それ以外の場合は false
。
例外
source
または predicate
が null
です。
例
次のコード例では、 を使用 All して、シーケンス内のすべての要素が条件を満たしているかどうかを判断する方法を示します。 変数 allStartWithB
は、すべてのペット名が "B" で始まる場合、または配列が空の pets
場合は true です。
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void AllEx()
{
// Create an array of Pets.
Pet[] pets = { new Pet { Name="Barley", Age=10 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=6 } };
// Determine whether all pet names
// in the array start with 'B'.
bool allStartWithB = pets.All(pet =>
pet.Name.StartsWith("B"));
Console.WriteLine(
"{0} pet names start with 'B'.",
allStartWithB ? "All" : "Not all");
}
// This code produces the following output:
//
// Not all pet names start with 'B'.
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub AllEx()
' Create an array of Pets.
Dim pets() As Pet =
{New Pet With {.Name = "Barley", .Age = 2},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 7}}
' Determine whether all pet names in the array start with "B".
Dim allNames As Boolean =
pets.All(Function(ByVal pet) pet.Name.StartsWith("B"))
' Display the output.
Dim text As String = IIf(allNames, "All", "Not all")
Console.WriteLine($"{text} pet names start with 'B'.")
End Sub
' This code produces the following output:
'
' Not all pet names start with 'B'.
メソッドがAll返すブール値は、通常、句 (Where
Visual Basic の句) または メソッドへのWhere直接呼び出しの述語where
で使用されます。 次の例では、 メソッドのこの使用方法を All
示します。
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
class Person
{
public string LastName { get; set; }
public Pet[] Pets { get; set; }
}
public static void AllEx2()
{
List<Person> people = new List<Person>
{ new Person { LastName = "Haas",
Pets = new Pet[] { new Pet { Name="Barley", Age=10 },
new Pet { Name="Boots", Age=14 },
new Pet { Name="Whiskers", Age=6 }}},
new Person { LastName = "Fakhouri",
Pets = new Pet[] { new Pet { Name = "Snowball", Age = 1}}},
new Person { LastName = "Antebi",
Pets = new Pet[] { new Pet { Name = "Belle", Age = 8} }},
new Person { LastName = "Philips",
Pets = new Pet[] { new Pet { Name = "Sweetie", Age = 2},
new Pet { Name = "Rover", Age = 13}} }
};
// Determine which people have pets that are all older than 5.
IEnumerable<string> names = from person in people
where person.Pets.All(pet => pet.Age > 5)
select person.LastName;
foreach (string name in names)
{
Console.WriteLine(name);
}
/* This code produces the following output:
*
* Haas
* Antebi
*/
}
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Structure Person
Public LastName As String
Public Pets() As Pet
End Structure
Sub AllEx2()
Dim people As New List(Of Person)(New Person() _
{New Person With {.LastName = "Haas",
.Pets = New Pet() {New Pet With {.Name = "Barley", .Age = 10},
New Pet With {.Name = "Boots", .Age = 14},
New Pet With {.Name = "Whiskers", .Age = 6}}},
New Person With {.LastName = "Fakhouri",
.Pets = New Pet() {New Pet With {.Name = "Snowball", .Age = 1}}},
New Person With {.LastName = "Antebi",
.Pets = New Pet() {New Pet With {.Name = "Belle", .Age = 8}}},
New Person With {.LastName = "Philips",
.Pets = New Pet() {New Pet With {.Name = "Sweetie", .Age = 2},
New Pet With {.Name = "Rover", .Age = 13}}}})
' Determine which people have pets that are all older than 5.
Dim names = From person In people
Where person.Pets.All(Function(pet) pet.Age > 5)
Select person.LastName
For Each name As String In names
Console.WriteLine(name)
Next
' This code produces the following output:
'
' Haas
' Antebi
End Sub
注釈
注意
このメソッドは、コレクションのすべての要素を返すわけではありません。 代わりに、コレクションのすべての要素が条件を満たすかどうかを判断します。
の source
列挙は、結果が決定されるとすぐに停止します。
Visual Basic クエリ式の構文では、 句は Aggregate Into All()
の All呼び出しに変換されます。
適用対象
こちらもご覧ください
.NET