Array.TrueForAll<T>(T[], Predicate<T>) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bestimmt, ob jedes Element im Array mit den bedingungen übereinstimmt, die durch das angegebene Prädikat definiert wurden.
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.
Parameter
- array
- T[]
Die eindimensionale nullbasierte Array Überprüfung der Bedingungen.
- match
- Predicate<T>
Das Prädikat, das die Bedingungen definiert, um die Elemente zu überprüfen.
Gibt zurück
truewenn jedes Element in array den bedingungen entspricht, die durch das angegebene Prädikat definiert werden; andernfalls . false Wenn keine Elemente im Array vorhanden sind, lautet trueder Rückgabewert .
Ausnahmen
Beispiele
Im folgenden Beispiel wird ermittelt, ob das letzte Zeichen jedes Elements in einem Zeichenfolgenarray eine Zahl ist. Es erstellt zwei Zeichenfolgenarrays. Das erste Array enthält beide Zeichenfolgen, die mit alphabetischen Zeichen und Zeichenfolgen enden, die mit numerischen Zeichen enden. Das zweite Array besteht nur aus Zeichenfolgen, die mit numerischen Zeichen enden. Im Beispiel wird auch eine EndWithANumber Methode definiert, deren Signatur dem Predicate<T> Delegat entspricht. Im Beispiel wird jedes Array zusammen mit einem Delegaten an die TrueForAll Methode übergeben, der die EndsWithANumber Methode darstellt.
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.
open System
let endsWithANumber (value: string) =
value.Substring(value.Length - 1)
|> Int32.TryParse
|> fst
let values1 = [| "Y2K"; "A2000"; "DC2A6"; "MMXIV"; "0C3" |]
let values2 = [| "Y2"; "A2000"; "DC2A6"; "MMXIV_0"; "0C3" |]
if Array.TrueForAll(values1, endsWithANumber) then
printfn "All elements end with an integer."
else
printfn "Not all elements end with an integer."
if Array.TrueForAll(values2, endsWithANumber) then
printfn "All elements end with an integer."
else
printfn "Not all elements end with an integer."
// 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 der Ausnahme, dass es das Zeichenfolgenarray zusammen mit einem Lambda-Ausdruck an die TrueForAll Methode übergibt, der bestimmt, ob ein bestimmtes Arrayelement mit der Zeichenfolgendarstellung einer Zahl endet.
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.
open System
let values = [| "Y2K"; "A2000"; "DC2A6"; "MMXIV"; "0C3" |]
if Array.TrueForAll(values,
fun value ->
value.Substring(value.Length - 1)
|> Int32.TryParse
|> fst) then
printfn "All elements end with an integer."
else
printfn "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 wird die TrueForAll Methode zurückgegeben false , sobald das erste Arrayelement auftritt, das nicht in einer Zahl endet. Andernfalls wird sie nach dem Durchlaufen aller Elemente im Array zurückgegeben true .
Note
Wie beide Beispiele zeigen, ist es in C# und Visual Basic nicht erforderlich, den Predicate<string> Delegat (Predicate(Of String) in Visual Basic) explizit zu erstellen. In diesen Sprachen wird der richtige Delegat aus dem Kontext abgeleitet und automatisch erstellt.
Hinweise
Dies Predicate<T> ist ein Delegat an eine Methode, die zurückgibttrue , wenn das an sie übergebene Objekt den in der Stellvertretung definierten Bedingungen entspricht. Die Elemente werden array einzeln an das Predicate<T>Element übergeben, und die Verarbeitung wird beendet, wenn der Delegat für jedes Element zurückgibt false .
Bei dieser Methode handelt es sich um einen O()-Vorgang, bei dem n es sich um einen n OLength(array)-Vorgang handelt.