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

Definição

Determina se cada elemento na matriz corresponde às condições definidas pelo predicado especificado.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

Parâmetros de tipo

T

O tipo dos elementos da matriz.The type of the elements of the array.

Parâmetros

array
T[]

O Array unidimensional, com base em zero a ser verificado em relação às condições.The one-dimensional, zero-based Array to check against the conditions.

match
Predicate<T> Predicate<T> Predicate<T> Predicate<T>

O predicado que define as condições a serem verificadas nos elementos.The predicate that defines the conditions to check against the elements.

Retornos

true se cada elemento no array corresponder às condições definidas pelo predicado especificado; caso contrário, false.true if every element in array matches the conditions defined by the specified predicate; otherwise, false. Se não houver nenhum elemento na matriz, o valor retornado será true.If there are no elements in the array, the return value is true.

Exceções

array é null.array is null.

- ou --or- match é null.match is null.

Exemplos

O exemplo a seguir determina se o último caractere de cada elemento em uma matriz de cadeia de caracteres é um número.The following example determines whether the last character of each element in a string array is a number. Ele cria duas matrizes de cadeia de caracteres.It creates two string arrays. A primeira matriz inclui as seqüências que terminam com caracteres alfabéticos e seqüências que terminam com caracteres numéricos. A segunda matriz consiste apenas em cadeias de caracteres que terminam com caractere numérico.The first array includes both strings that end with alphabetic characters and strings that end with numeric characters.The second array consists only of strings that end with numeric characters. O exemplo também define um EndWithANumber método cuja assinatura corresponde ao Predicate<T> delegado.The example also defines an EndWithANumber method whose signature matches the Predicate<T> delegate. O exemplo passa cada matriz para o TrueForAll método junto com um delegado que representa o EndsWithANumber método.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.

O exemplo a seguir é semelhante ao primeiro, exceto pelo fato de que ele passa a matriz TrueForAll de cadeia de caracteres para o método junto com uma expressão lambda que determina se um elemento de matriz específico termina com a representação de cadeia de caracteres de um número.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.

Em ambos os casos, TrueForAll o método false retorna assim que encontra o primeiro elemento de matriz que não termina em um número.In both cases, the TrueForAll method returns false as soon as it encounters the first array element that does not end in a number. Caso contrário, ele true retorna após a iteração de todos os elementos na matriz.Otherwise, it returns true after iterating all the elements in the array.

Observação

Como os dois exemplos mostram, C# no e Visual Basic, não é necessário criar o Predicate<string> delegado (Predicate(Of String) em Visual Basic) explicitamente.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. Essas linguagens inferem o representante correto pelo contexto e criam-no automaticamente.These languages infer the correct delegate from context and create it automatically.

Comentários

O Predicate<T> é um delegado a um método que retornatrue se o objeto passado para ele corresponde às condições definidas no delegado.The Predicate<T> is a delegate to a method that returnstrue if the object passed to it matches the conditions defined in the delegate. Os elementos de array são passados individualmente para o Predicate<T>, e o processamento é interrompido quando o delegado false retorna para qualquer elemento.The elements of array are individually passed to the Predicate<T>, and processing is stopped when the delegate returns false for any element.

Este método é uma operação O(n), em que n é o Length de array.This method is an O(n) operation, where n is the Length of array.

Aplica-se a

Veja também