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

Definizione

Determina se ogni elemento della matrice soddisfa le condizioni definite dal predicato specificato.

public static bool TrueForAll<T> (T[] array, Predicate<T> match);

Parametri di tipo

T

Tipo degli elementi della matrice.

Parametri

array
T[]

Oggetto unidimensionale in base zero Array da verificare rispetto alle condizioni.

match
Predicate<T>

Predicato che definisce le condizioni da verificare negli elementi.

Restituisce

Boolean

true se ogni elemento in array soddisfa le condizioni definite dal predicato specificato; in caso contrario, false. Se la matrice non contiene elementi, il valore restituito è true.

Eccezioni

array è null.

-oppure-

match è null.

Esempio

Nell'esempio seguente viene determinato se l'ultimo carattere di ogni elemento in una matrice di stringhe è un numero. Crea due matrici di stringhe. La prima matrice include entrambe le stringhe che terminano con caratteri alfabetici e stringhe che terminano con caratteri numerici. La seconda matrice è costituita solo da stringhe che terminano con caratteri numerici. L'esempio definisce anche un EndWithANumber metodo la cui firma corrisponde al Predicate<T> delegato. L'esempio TrueForAll passa ogni matrice al metodo insieme a un delegato che rappresenta il EndsWithANumber metodo .

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 int.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.

L'esempio seguente è simile al primo, ad eccezione del fatto che passa la matrice stringa al metodo insieme a TrueForAll un'espressione lambda che determina se un particolare elemento matrice termina con la rappresentazione stringa di un numero.

using System;

public class Example
{
   public static void Main()
   {
      String[] values = { "Y2K", "A2000", "DC2A6", "MMXIV", "0C3" };
      if (Array.TrueForAll(values, value => {
                                      int s;
                                      return int.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.

In entrambi i casi, il TrueForAll metodo restituisce false non appena rileva il primo elemento della matrice che non termina in un numero. In caso contrario, restituisce true dopo l'iterazione di tutti gli elementi della matrice.

Nota

Poiché entrambi gli esempi mostrano, in C# e Visual Basic, non è necessario creare il Predicate<string> delegato (Predicate(Of String)in Visual Basic) in modo esplicito. Queste lingue deducono il delegato corretto dal contesto e lo creano automaticamente.

Commenti

L'oggetto Predicate<T> è un delegato a un metodo che restituiscetrue se l'oggetto passato corrisponde alle condizioni definite nel delegato. Gli elementi di array vengono passati singolarmente all'oggetto e l'elaborazione Predicate<T>viene arrestata quando il delegato restituisce false per qualsiasi elemento.

Questo metodo è un'operazione O(n), dove n è l'oggetto Length di array.

Si applica a

Vedi anche