Array.TrueForAll(T[], Predicate<T>) Array.TrueForAll(T[], Predicate<T>) Array.TrueForAll(T[], Predicate<T>) Array.TrueForAll(T[], Predicate<T>) Method

定義

配列内のすべての要素が、指定された述語によって定義された条件と一致するかどうかを調べます。 Determines whether every element in the array matches the conditions defined by the specified predicate.

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

配列要素の型。 The type of the elements of the array.

パラメーター
array
T[]

条件が一致するかどうかをチェックする 1 次元の Array。インデックス番号が 0 から始まる必要があります。 The one-dimensional, zero-based Array to check against the conditions.

match
Predicate<T> Predicate<T> Predicate<T> Predicate<T>

要素の条件を定義する述語。 The predicate that defines the conditions to check against the elements.

戻り値

array 内のすべての要素が、指定された述語によって定義された条件と一致する場合は true。それ以外の場合は false true if every element in array matches the conditions defined by the specified predicate; otherwise, false. 配列内に要素がない場合、戻り値は true です。 If there are no elements in the array, the return value is true.

例外

arraynullです。 array is null. - または - -or- matchnullです。 match is null.

次の例は、文字列配列内の各要素の最後の文字が数字かどうかを判断します。The following example determines whether the last character of each element in a string array is a number. 2 つの文字列配列を作成します。It creates two string arrays. 両方の文字列の文字のアルファベットと数字で終わる文字列で終わる最初 arrayincludes します。2 番目の配列は、数字で終わる文字列ののみで構成されます。The first arrayincludes both strings that end with alphabetic characters and strings that end with numeric characters.The second array consists only of strings that end with numeric characters. また、EndWithANumberシグネチャと一致するメソッド、Predicate<T>デリゲートします。The example also defines an EndWithANumber method whose signature matches the Predicate<T> delegate. 例には、各配列では、TrueForAllメソッドを表すデリゲートと、EndsWithANumberメソッド。The example passes each array to the TrueForAll method along with a delegate that represents the EndsWithANumber method.

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 Int32.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.
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.

次の例は、文字列配列を通過する点を除いて、最初に似ています、TrueForAllメソッドとラムダ式を特定の配列要素は、数値の文字列形式で終わるかどうかを判断します。The following example is similar to the first, except that it passes the string array to the TrueForAll method along with a lambda expression that determines whether a particular array element ends with the string representation of a number.

using System;

public class Example
{
   public static void Main()
   {
      String[] values = { "Y2K", "A2000", "DC2A6", "MMXIV", "0C3" };
      if (Array.TrueForAll(values, value => {
                                      int s; 
                                      return Int32.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.
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.

どちらの場合で、TrueForAllメソッドを返します。falseが数値で終わらない: 最初の配列要素が発生するとすぐにします。In both cases, the TrueForAll method returns false as soon as it encounters the first array element that does not end in a number. 返しますそれ以外の場合、true後、配列内のすべての要素を反復処理します。Otherwise, it returns true after iterating all the elements in the array.

注意

どちらの例に示すとおり、c# および Visual Basic の場合を作成する必要はありません、Predicate<string>デリゲート (Predicate(Of String) Visual Basic で) 明示的にします。As both examples show, in C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. これらの言語では、コンテキストから適切なデリゲート推測し、自動的に作成します。These languages infer the correct delegate from context and create it automatically.

注釈

Predicate<T>を返すメソッドにデリゲートtrueデリゲートで定義されている条件に一致するオブジェクトが渡された場合。The Predicate<T> is a delegate to a method that returnstrue if the object passed to it matches the conditions defined in the delegate. 要素arrayに個別に渡される、 Predicate<T>、デリゲートが戻るとき、処理が停止しているとfalse任意の要素。The elements of array are individually passed to the Predicate<T>, and processing is stopped when the delegate returns false for any element.

このメソッドは O (n) 操作、nは、Lengtharrayします。This method is an O(n) operation, where n is the Length of array.

適用対象

こちらもご覧ください