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 die vom angegebenen Prädikat definierten Bedingungen erfüllt.
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[]
Das eindimensionale nullbasierte Array, das auf die Bedingungen geprüft werden soll.
- match
- Predicate<T>
Das Prädikat, das die Bedingungen definiert, auf die die Elemente geprüft werden sollen.
Gibt zurück
true
, wenn jedes Element im array
die vom angegebenen Prädikat definierten Bedingungen erfüllt, andernfalls false
. Wenn keine Elemente im Array vorhanden sind, lautet der Rückgabewert true
.
Ausnahmen
Beispiele
Im folgenden Beispiel wird ermittelt, ob das letzte Zeichen jedes Elements in einem Zeichenfolgenarray eine Zahl ist. Es werden zwei Zeichenfolgenarrays erstellt. Das erste Array enthält sowohl Zeichenfolgen, die mit alphabetischen Zeichen enden, als auch Zeichenfolgen, die mit numerischen Zeichen enden. Das zweite Array besteht nur aus Zeichenfolgen, die mit numerischen Zeichen enden. Das Beispiel definiert auch eine EndWithANumber
Methode, deren Signatur mit dem Predicate<T> Delegaten übereinstimmt. Im Beispiel wird jedes Array zusammen mit einem Delegaten, der TrueForAll die -Methode darstellt, an die EndsWithANumber
-Methode übergeben.
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 dem Unterschied, dass es das Zeichenfolgenarray zusammen mit einem Lambdaausdruck 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 gibt die TrueForAll Methode zurück false
, sobald sie auf das erste Arrayelement trifft, das nicht in einer Zahl endet. Andernfalls wird nach dem Durchlaufen aller Elemente im Array zurückgegeben true
.
Hinweis
Wie beide Beispiele zeigen, ist es in C# und Visual Basic nicht erforderlich, den Predicate<string>
Delegaten (Predicate(Of String)
in Visual Basic) explizit zu erstellen. Diese Sprachen leiten den richtigen Delegat aus dem Kontext ab und erstellen ihn automatisch.
Hinweise
Der Predicate<T> ist ein Delegat an eine Methode, die zurückgibttrue
, wenn das an sie übergebene Objekt den im Delegaten definierten Bedingungen entspricht. Die Elemente von array
werden einzeln an das übergeben, und die Predicate<T>Verarbeitung wird beendet, wenn der Delegat für ein beliebiges Element zurückgibt false
.
Diese Methode ist ein O(n
)-Vorgang, wobei n
der Length von array
ist.