다음을 통해 공유


Enumerable.All<TSource> 메서드

정의

시퀀스의 모든 요소가 특정 조건에 맞는지 확인합니다.

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>입니다.

predicate
Func<TSource,Boolean>

각 요소를 조건에 대해 테스트하는 함수입니다.

반환

소스 시퀀스의 모든 요소가 지정된 조건자의 테스트를 통과하거나 시퀀스가 비어 있으면 true이고, 그렇지 않으면 false입니다.

예외

source 또는 predicatenull인 경우

예제

다음 코드 예제에서는 를 사용하여 All 시퀀스의 모든 요소가 조건을 충족하는지 여부를 확인하는 방법을 보여 줍니다. 모든 애완 동물 이름이 "B"로 시작하거나 배열이 비어 있으면 변수 allStartWithBpets 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 부울 값은 일반적으로 절(WhereVisual 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로 변환됩니다.

적용 대상

추가 정보