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 시퀀스의 모든 요소가 조건을 충족하는지 여부를 확인하는 방법을 보여 줍니다. 모든 애완 동물 이름이 "B"로 시작하거나 배열이 비어 있으면 변수 allStartWithB
가 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