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

 

Determines whether every element in the array matches the conditions defined by the specified predicate.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static bool TrueForAll<T>(
	T[] array,
	Predicate<T> match
)

Parameters

array
Type: T[]

The one-dimensional, zero-based Array to check against the conditions.

match
Type: System.Predicate<T>

The predicate that defines the conditions to check against the elements.

Return Value

Type: System.Boolean

true if every element in array matches the conditions defined by the specified predicate; otherwise, false. If there are no elements in the array, the return value is true.

Type Parameters

T

The type of the elements of the array.

Exception Condition
ArgumentNullException

array is null.

-or-

match is null.

The Predicate<T> is a delegate to a method that returnstrue if the object passed to it matches the conditions defined in the delegate. The elements of array are individually passed to the Predicate<T>, and processing is stopped when the delegate returns false for any element.

This method is an O(n) operation, where n is the Length of array.

The following example determines whether the last character of each element in a string array is a number. It creates two string arrays. 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. The example also defines an EndWithANumber method whose signature matches the Predicate<T> delegate. The example passes each array to the TrueForAll<T> 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.

The following example is similar to the first, except that it passes the string array to the TrueForAll<T> 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.

In both cases, the TrueForAll<T> method returns false as soon as it encounters the first array element that does not end in a number. Otherwise, it returns true after iterating all the elements in the array.

System_CAPS_noteNote

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.

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top
Show: