ForAll(T) Method (IEnumerable(T), Predicate(T))
Collapse the table of content
Expand the table of content

Contract.ForAll<T> Method (IEnumerable<T>, Predicate<T>)

Determines whether all the elements in a collection exist within a function.

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

public static bool ForAll<T>(
	IEnumerable<T> collection,
	Predicate<T> predicate
)

Type Parameters

T

The type that is contained in collection.

Parameters

collection
Type: System.Collections.Generic.IEnumerable<T>
The collection from which elements of type T will be drawn to pass to predicate.
predicate
Type: System.Predicate<T>
The function to evaluate for the existence of all the elements in collection.

Return Value

Type: System.Boolean
true if and only if predicate returns true for all elements of type T in collection.

ExceptionCondition
ArgumentNullException

collection or predicate is null.

The following example demonstrates how to use the ForAll method to determine whether a collection has a null element.


using System;
using System.Diagnostics.Contracts;
using System.Collections.Generic;
namespace AssumeEx
{
    class Program
    {
        // Start application with at least two arguments
        static void Main(string[] args)
        {
            args[1] = null;
            Contract.Requires(args != null && Contract.ForAll(0, args.Length, i => args[i] != null));
            // test the ForAll method.  This is only for purpose of demonstrating how ForAll works.
            CheckIndexes(args);
            Stack<string> numbers = new Stack<string>();
            numbers.Push("one");
            numbers.Push("two");
            numbers.Push(null);
            numbers.Push("four");
            numbers.Push("five");
            Contract.Requires(numbers != null && !Contract.ForAll(numbers, (String x) => x != null));
            // test the ForAll generic overload.  This is only for purpose of demonstrating how ForAll works.
            CheckTypeArray(numbers);
        }

        private static bool CheckIndexes(string[] args)
        {
            try
            {
                if (args != null && !Contract.ForAll(0, args.Length, i => args[i] != null))
                    throw new ArgumentException("The parameter array has a null element", "args");
                return true;
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
                return false;
            }
        }
        private static bool CheckTypeArray(IEnumerable<String> xs)
        {
            try
            {
                if (xs != null && !Contract.ForAll(xs, (String x) => x != null))
                    throw new ArgumentException("The parameter array has a null element", "indexes");
                return true;
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
                return false;
            }
        }
    }
}


Silverlight

Supported in: 5, 4

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2016 Microsoft