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

Definition

Bestimmt, ob jedes Element im Array die vom angegebenen Prädikat definierten Bedingungen erfüllt.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

Typparameter

T

Der Typ der Elemente des Arrays.The type of the elements of the array.

Parameter

array
T[]

Das eindimensionale nullbasierte Array, das auf die Bedingungen geprüft werden soll.The one-dimensional, zero-based Array to check against the conditions.

match
Predicate<T>

Das Prädikat, das die Bedingungen definiert, auf die die Elemente geprüft werden sollen.The predicate that defines the conditions to check against the elements.

Gibt zurück

true, wenn jedes Element im array die vom angegebenen Prädikat definierten Bedingungen erfüllt, andernfalls false.true if every element in array matches the conditions defined by the specified predicate; otherwise, false. Wenn keine Elemente im Array vorhanden sind, lautet der Rückgabewert true.If there are no elements in the array, the return value is true.

Ausnahmen

array ist nullarray is null.

- oder --or- match ist nullmatch is null.

Beispiele

Im folgenden Beispiel wird bestimmt, ob das letzte Zeichen jedes Elements in einem Zeichen folgen Array eine Zahl ist.The following example determines whether the last character of each element in a string array is a number. Es werden zwei Zeichen folgen Arrays erstellt.It creates two string arrays. Das erste Array enthält beide Zeichen folgen, die mit alphabetischen Zeichen enden, und Zeichen folgen, die mit numerischen Zeichen enden. Das zweite Array besteht nur aus Zeichen folgen, die mit numerischen Zeichen enden.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. Im Beispiel wird auch eine EndWithANumber Methode definiert, deren Signatur mit der Predicate<T> Delegaten übereinstimmt.The example also defines an EndWithANumber method whose signature matches the Predicate<T> delegate. Im Beispiel wird jedes Array zusammen mit einem Delegaten, der die EndsWithANumber-Methode darstellt, an die TrueForAll-Methode weitergeleitet.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.

Das folgende Beispiel ähnelt dem ersten, mit dem Unterschied, dass es das Zeichen folgen Array an die TrueForAll-Methode mit einem Lambda-Ausdruck übergibt, der bestimmt, ob ein bestimmtes Array Element mit der Zeichen folgen Darstellung einer Zahl endet.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.

In beiden Fällen gibt die TrueForAll-Methode false zurück, sobald das erste Array Element gefunden wird, das nicht mit einer Zahl endet.In both cases, the TrueForAll method returns false as soon as it encounters the first array element that does not end in a number. Andernfalls wird true zurückgegeben, nachdem alle Elemente im Array durchlaufen wurden.Otherwise, it returns true after iterating all the elements in the array.

Hinweis

Da beide Beispiele in C# und Visual Basic, ist es nicht notwendig, den Predicate<string> Delegaten (Predicate(Of String) in Visual Basic) explizit zu erstellen.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. Diese Sprachen ableiten den korrekten Delegaten aus dem Kontext und erstellen ihn automatisch.These languages infer the correct delegate from context and create it automatically.

Hinweise

Der Predicate<T> ist ein Delegat für eine Methode, dietrue zurückgibt, wenn das an Sie übergebenen Objekt mit den im Delegaten definierten Bedingungen übereinstimmt.The Predicate<T> is a delegate to a method that returnstrue if the object passed to it matches the conditions defined in the delegate. Die Elemente array werden einzeln an den Predicate<T>und die Verarbeitung beendet, wenn der Delegat false für ein beliebiges Element zurückgibt.The elements of array are individually passed to the Predicate<T>, and processing is stopped when the delegate returns false for any element.

Bei dieser Methode handelt es sich um einen O (n)-Vorgang, bei dem n der Length von arrayist.This method is an O(n) operation, where n is the Length of array.

Gilt für:

Siehe auch