Array.TrueForAll<T>(T[], Predicate<T>) Method

Definition

Určuje, zda každý prvek v poli odpovídá podmínkám definovaným zadaným predikátem.Determines whether every element in the array matches the conditions defined by the specified predicate.

public:
generic <typename T>
 static bool TrueForAll(cli::array <T> ^ array, Predicate<T> ^ match);
public static bool TrueForAll<T> (T[] array, Predicate<T> match);
static member TrueForAll : 'T[] * Predicate<'T> -> bool
Public Shared Function TrueForAll(Of T) (array As T(), match As Predicate(Of T)) As Boolean

Type Parameters

T

Typ prvků pole.The type of the elements of the array.

Parameters

array
T[]

Jednorozměrné Array založené na nule pro kontrolu podmínek.The one-dimensional, zero-based Array to check against the conditions.

match
Predicate<T>

Predikát definující podmínky pro kontrolu nad prvky.The predicate that defines the conditions to check against the elements.

Returns

Boolean

true, zda každý prvek v array odpovídá podmínkám definovaným zadaným predikátem; v opačném případě false.true if every element in array matches the conditions defined by the specified predicate; otherwise, false. Pokud pole neobsahuje žádné prvky, návratová hodnota je true.If there are no elements in the array, the return value is true.

Exceptions

array je null.array is null.

-nebo--or- match je null.match is null.

Examples

Následující příklad určuje, zda je poslední znak každého prvku v poli řetězců číslo.The following example determines whether the last character of each element in a string array is a number. Vytvoří dvě řetězcová pole.It creates two string arrays. První pole obsahuje oba řetězce, které končí abecední znaky a řetězce, které končí číselnými znaky.The first array includes both strings that end with alphabetic characters and strings that end with numeric characters. Druhé pole se skládá pouze z řetězců, které končí číselnými znaky.The second array consists only of strings that end with numeric characters. V příkladu je také definována metoda EndWithANumber, jejíž signatura odpovídá delegátu Predicate<T>.The example also defines an EndWithANumber method whose signature matches the Predicate<T> delegate. Tento příklad předá každé pole do TrueForAll metody společně s delegátem, který představuje metodu EndsWithANumber.The example passes each array to the TrueForAll method along with a delegate that represents the EndsWithANumber method.

using System;

public class Example
{
   public static void Main()
   {
      String[] values1 = { "Y2K", "A2000", "DC2A6", "MMXIV", "0C3" };
      String[] values2 = { "Y2", "A2000", "DC2A6", "MMXIV_0", "0C3" };

      if (Array.TrueForAll(values1, EndsWithANumber))
         Console.WriteLine("All elements end with an integer.");
      else
         Console.WriteLine("Not all elements end with an integer.");

      if (Array.TrueForAll(values2, EndsWithANumber))
         Console.WriteLine("All elements end with an integer.");
      else
         Console.WriteLine("Not all elements end with an integer.");
   }

   private static bool EndsWithANumber(String value)
   {
      int s;
      return Int32.TryParse(value.Substring(value.Length - 1), out s);
   }
}
// The example displays the following output:
//       Not all elements end with an integer.
//       All elements end with an integer.
Module Example
   Public Sub Main()
      Dim values1() As String = { "Y2K", "A2000", "DC2A6", "MMXIV", "0C3" }
      Dim values2() As String = { "Y2", "A2000", "DC2A6", "MMXIV_0", "0C3" }


      If Array.TrueForAll(values1, AddressOf EndsWithANumber) Then
         Console.WriteLine("All elements end with an integer.")
      Else
         Console.WriteLine("Not all elements end with an integer.")
      End If  
       
      If Array.TrueForAll(values2, AddressOf EndsWithANumber) Then
         Console.WriteLine("All elements end with an integer.")
      Else
         Console.WriteLine("Not all elements end with an integer.")
      End If   
   End Sub

   Private Function EndsWithANumber(value As String) As Boolean
      Dim s As Integer
      Return Int32.TryParse(value.Substring(value.Length - 1), s)
   End Function
End Module
' The example displays the following output:
'       Not all elements end with an integer.
'       All elements end with an integer.

Následující příklad je podobný prvnímu, s tím rozdílem, že předá pole řetězců metodě TrueForAll společně s výrazem lambda, který určuje, zda konkrétní element pole končí řetězcovým vyjádřením čísla.The following example is similar to the first, except that it passes the string array to the TrueForAll method along with a lambda expression that determines whether a particular array element ends with the string representation of a number.

using System;

public class Example
{
   public static void Main()
   {
      String[] values = { "Y2K", "A2000", "DC2A6", "MMXIV", "0C3" };
      if (Array.TrueForAll(values, value => {
                                      int s;
                                      return Int32.TryParse(value.Substring(value.Length - 1), out s); }
                                   ))
         Console.WriteLine("All elements end with an integer.");
      else
         Console.WriteLine("Not all elements end with an integer.");
   }
}
// The example displays the following output:
//        Not all elements end with an integer.
Module Example
   Public Sub Main()
      Dim values() As String = { "Y2K", "A2000", "DC2A6", "MMXIV", "0C3" }
      'Dim values2() As String = { "Y2", "A2000", "DC2A6", "MMXIV_0", "0C3" }

      If Array.TrueForAll(values, Function(value) 
                                     Dim s As Integer
                                     Return Int32.TryParse(value.Substring(value.Length - 1), s)
                                  End Function) Then
         Console.WriteLine("All elements end with an integer.")
      Else
         Console.WriteLine("Not all elements end with an integer.")
      End If   
   End Sub
End Module
' The example displays the following output:
'       Not all elements end with an integer.

V obou případech metoda TrueForAll vrátí false, jakmile dojde k prvnímu prvku pole, který nekončí číslem.In both cases, the TrueForAll method returns false as soon as it encounters the first array element that does not end in a number. V opačném případě vrátí true po iteraci všech prvků v poli.Otherwise, it returns true after iterating all the elements in the array.

Note

Jak oba příklady ukazují, v C# a Visual Basic není nutné explicitně vytvořit delegáta Predicate<string> (Predicate(Of String) v Visual Basic).As both examples show, in C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Tyto jazyky odvozují správného delegáta z kontextu a vytvoří jej automaticky.These languages infer the correct delegate from context and create it automatically.

Remarks

Predicate<T> je delegát metody, která vracítrue, pokud předaný objekt odpovídá podmínkám definovaným v delegátovi.The Predicate<T> is a delegate to a method that returnstrue if the object passed to it matches the conditions defined in the delegate. Prvky array jsou jednotlivě předány do Predicate<T>a zpracování je zastaveno, když delegát vrátí false pro libovolný prvek.The elements of array are individually passed to the Predicate<T>, and processing is stopped when the delegate returns false for any element.

Tato metoda je operace O (n), kde n je Length array.This method is an O(n) operation, where n is the Length of array.

Applies to

See also