Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Array.TrueForAll<T>(T[], Predicate<T>)

 

Publicado: octubre de 2016

Determina si cada elemento de la matriz cumple las condiciones definidas por el predicado especificado.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

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

Parámetros

array
Type: T[]

Matriz Array unidimensional de base cero en la que se van a comprobar las condiciones.

match
Type: System.Predicate<T>

El predicado que define las condiciones que se van a comprobar en los elementos.

Valor devuelto

Type: System.Boolean

true si cada elemento de array cumple las condiciones definidas por el predicado especificado; de lo contrario, false. Si no hay ningún elemento en la matriz, el valor devuelto es true.

Parámetros de tipo

T

Tipo de los elementos de la matriz.

Exception Condition
ArgumentNullException

El valor de array es null.

-o-

El valor de match es null.

El Predicate<T> es un delegado a un método que devuelvetrue si el objeto pasado a coincide con las condiciones definidas en el delegado. Los elementos de array se pasan individualmente a la Predicate<T>, y se detiene el procesamiento cuando el delegado devuelve false para cualquier elemento.

Este método es una O (n) operación, donde n es el Length de array.

En el ejemplo siguiente se determina si el último carácter de cada elemento de una matriz de cadenas es un número. Crea dos matrices de cadenas. La primera arrayincludes ambas cadenas que finalicen con cadenas que finalizan con caracteres alfanuméricos y caracteres alfabéticos. La segunda matriz consta solo de cadenas que terminan por caracteres numéricos. El ejemplo también define un EndWithANumber método cuya firma coincida con la Predicate<T> delegar. En el ejemplo se pasa cada matriz a la TrueForAll<T> método junto con un delegado que representa el EndsWithANumber método.

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.

El ejemplo siguiente es similar a la primera, salvo que se pasa la matriz de cadenas para el TrueForAll<T> método junto con una expresión lambda que determina si un elemento concreto de la matriz termina con la representación de cadena de un número.

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.

En ambos casos, el TrueForAll<T> método false tan pronto como encuentra el primer elemento de matriz no termina en un número. De lo contrario, devuelve true después de recorrer en iteración todos los elementos de la matriz.

System_CAPS_noteNota

Como se muestran en ambos ejemplos, en C# y Visual Basic, no es necesario crear la Predicate<string> delegar (Predicate(Of String) en Visual Basic) explícitamente. Estos lenguajes deducen al delegado correcto del contexto y lo crean automáticamente.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 2.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: