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
注釈
Note
このメソッドは、コレクションのすべての要素を返すわけではありません。 代わりに、コレクションのすべての要素が条件を満たすかどうかを判断します。
sourceの列挙は、結果が特定されるとすぐに停止します。
Visual Basicクエリ式構文では、Aggregate Into All() 句が All の呼び出しに変換されます。