Array.TrueForAll<T>(T[], Predicate<T>) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Determina se cada elemento na matriz corresponde às condições definidas pelo predicado especificado.
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
Parâmetros de tipo
- T
O tipo dos elementos da matriz.
Parâmetros
- array
- T[]
O Array unidimensional, com base em zero a ser verificado em relação às condições.
- match
- Predicate<T>
O predicado que define as condições a serem verificadas nos elementos.
Retornos
true
se cada elemento no array
corresponder às condições definidas pelo predicado especificado; caso contrário, false
. Se não houver nenhum elemento na matriz, o valor retornado será true
.
Exceções
Exemplos
O exemplo a seguir determina se o último caractere de cada elemento em uma matriz de cadeia de caracteres é um número. Ele cria duas matrizes de cadeia de caracteres. A primeira matriz inclui cadeias de caracteres que terminam com caracteres alfabéticos e cadeias de caracteres que terminam com caracteres numéricos. A segunda matriz consiste apenas em cadeias de caracteres que terminam com caracteres numéricos. O exemplo também define um EndWithANumber
método cuja assinatura corresponde ao Predicate<T> delegado. O exemplo passa cada matriz para o TrueForAll método junto com um delegado que representa o 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 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.
O exemplo a seguir é semelhante ao primeiro, exceto que ele passa a matriz de cadeia de caracteres para o TrueForAll método junto com uma expressão lambda que determina se um determinado elemento de matriz termina com a representação de cadeia de caracteres de um 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 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.
Em ambos os casos, o TrueForAll método retorna false
assim que encontra o primeiro elemento de matriz que não termina em um número. Caso contrário, ele retornará true
depois de iterar todos os elementos na matriz.
Observação
Como os dois exemplos mostram, em C# e Visual Basic, não é necessário criar o Predicate<string>
delegado (Predicate(Of String)
em Visual Basic) explicitamente. Essas linguagens inferem o representante correto pelo contexto e criam-no automaticamente.
Comentários
O Predicate<T> é um delegado para um método que retornatrue
se o objeto passado para ele corresponder às condições definidas no delegado. Os elementos são array
passados individualmente para o , e o Predicate<T>processamento é interrompido quando o delegado retorna false
para qualquer elemento.
Este método é uma operação O(n
), em que n
é o Length de array
.