C# Array.TrueForAll: Use Lambda to Test All Elements

Use the Array.TrueForAll method to test elements with a Predicate lambda expression.

Array.TrueForAll. This is a static Array method. It gives you a declarative way to test every element in your array for some condition using a Predicate.

Notes, method. TrueForAll scans the array and returns true or false. The Predicate is invoked for each element in the array. We determine whether it returns true for all elements.ArrayPredicate

First example. We demonstrate the Array.TrueForAll method. Our program uses an int array of 4 odd numbers. The Array.TrueForAll method is invoked and the predicate is specified.Int Array
Argument 1: This is the array that we are testing. In this program, this is the array of 4 integers called "values."
Argument 2: This is a predicate lambda. The predicate method returns true whenever a number is not evenly divisible by two.
Odd, Even
Lambda: We specify the second argument with lambda expression syntax, which is a shorter way of writing a method.
C# program that uses Array.TrueForAll using System; class Program { static void Main() { int[] values = { 1, 3, 5, 7 }; // See if modulo 2 is 1 for all elements. bool result = Array.TrueForAll(values, y => y % 2 == 1); Console.WriteLine("TRUEFORALL: {0}", result); } } Output TRUEFORALL: True

Example, false. Here the numbers in the array are not all odd. Therefore the same Array.TrueForAll parameters will have the method return false.True, False
Info: We see that Array.TrueForAll correctly applies the predicate to every element in the array.
C# program that uses TrueForAll, false result using System; class Program { static void Main() { int[] values = { 2, 5, 8 }; // Test for all odd numbers again. bool result = Array.TrueForAll(values, y => y % 2 == 1); Console.WriteLine("RESULT: {0}", result); } } Output RESULT: False

Discussion. We could write a method that does the same thing as Array.TrueForAll. Test each element in a foreach-loop. Return early if an element doesn't match.Foreach
Info: Typically, this sort of approach is much faster than using a call such as Array.TrueForAll.
However: Array.TrueForAll is less familiar to programmers used to other languages. Its use might make a development team less efficient.

A summary. We used Array.TrueForAll. By applying the predicate argument to each element in the array argument, you can use it to test every element of the array for some condition.

© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.