Array.TrueForAll<T>(T[], Predicate<T>) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Dizideki her öğenin belirtilen koşul tarafından tanımlanan koşullarla eşleşip eşleşmediğini belirler.
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
Tür Parametreleri
- T
Dizinin öğelerinin türü.
Parametreler
- array
- T[]
Koşullara göre denetlenecek tek boyutlu, sıfır tabanlı Array .
- match
- Predicate<T>
Öğelere karşı denetlenecek koşulları tanımlayan koşul.
Döndürülenler
true içindeki array her öğe belirtilen koşul tarafından tanımlanan koşullarla eşleşiyorsa; değilse, false. Dizide öğe yoksa, dönüş değeri olur true.
Özel durumlar
Örnekler
Aşağıdaki örnek, bir dize dizisindeki her öğenin son karakterinin bir sayı olup olmadığını belirler. İki dize dizisi oluşturur. İlk dizi hem alfabetik karakterlerle biten dizeleri hem de sayısal karakterlerle biten dizeleri içerir. İkinci dizi yalnızca sayısal karakterlerle biten dizelerden oluşur. Örnek, imzası temsilciyle EndWithANumber eşleşen bir Predicate<T> yöntemi de tanımlar. Örnek, yöntemi temsil eden bir temsilci ile birlikte her diziyi TrueForAll yöntemine EndsWithANumber geçirir.
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.
Aşağıdaki örnek, dize dizisini yöntemine TrueForAll , belirli bir dizi öğesinin bir sayının dize gösterimiyle bitip bitmeyeceğini belirleyen bir lambda ifadesiyle birlikte geçirmesi dışında ilkine benzer.
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.
Her iki durumda da yöntem, TrueForAll bir sayı ile bitmeyen ilk dizi öğesiyle karşılaştığı anda döndürür false . Aksi takdirde, dizideki tüm öğeleri yineledikten sonra döndürür true .
Note
Her iki örnekte de gösterildiği gibi, C# ve Visual Basic'de açıkça Predicate<string> temsilcisinin (Visual Basic'de Predicate(Of String)) oluşturulması gerekmez. Bu diller, bağlamdan doğru temsilciyi çıkarsar ve otomatik olarak oluşturur.
Açıklamalar
, Predicate<T> geçirilen nesne temsilcide tanımlanan koşullarla eşleşiyorsa döndürentrue bir yöntemin temsilcisidir. öğeleri array tek tek öğesine Predicate<T>geçirilir ve temsilci herhangi bir öğe için döndürdüğünde false işleme durdurulur.
Bu yöntem bir O(n) işlemidir; burada n değeridir Lengtharray.