Aracılığıyla paylaş


Array.TrueForAll<T>(T[], Predicate<T>) Yöntem

Tanım

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 öğelerini 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

Boolean

true içindeki array her öğe belirtilen koşul tarafından tanımlanan koşullarla eşleşiyorsa; eşleşmiyorsa, false. Dizide öğe yoksa, dönüş değeri olur true.

Özel durumlar

array, null değeridir.

-veya-

match, null değeridir.

Ö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, alfabetik karakterlerle biten dizeleri ve sayısal karakterlerle biten dizeleri içerir. İkinci dizi yalnızca sayısal karakterlerle biten dizelerden oluşur. Örnek ayrıca, imzası temsilciyle Predicate<T> eşleşen bir EndWithANumber 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 geçirmesi dışında, belirli bir dizi öğesinin bir sayının dize gösterimiyle bitip bitmeyeceğini belirleyen bir lambda ifadesiyle birlikte 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 .

Not

Her iki örnekte de gösterildiği gibi, C# ve Visual Basic'de temsilcinin Predicate<string> (Predicate(Of String)Visual Basic içinde) açıkça oluşturulması gerekmez. Bu diller doğru temsilciyi bağlamdan çıkarır ve otomatik olarak oluşturur.

Açıklamalar

Predicate<T>, nesnesine geçirilen nesnenin temsilcide tanımlanan koşullarla eşleşip eşleşmediğini 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 ve burada n değeridir Length array.

Şunlara uygulanır

Ayrıca bkz.