Contract.ForAll Method (Int32, Int32, Predicate<Int32>)
.NET Framework (current version)
Determines whether a particular condition is valid for all integers in a specified range.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- fromInclusive
-
Type:
System.Int32
The first integer to pass to predicate.
- toExclusive
-
Type:
System.Int32
One more than the last integer to pass to predicate.
- predicate
-
Type:
System.Predicate<Int32>
The function to evaluate for the existence of the integers in the specified range.
Return Value
Type: System.Booleantrue if predicate returns true for all integers starting from fromInclusive to toExclusive - 1.
| Exception | Condition |
|---|---|
| ArgumentNullException | predicate is null. |
| ArgumentException | toExclusive is less than fromInclusive. |
The toExclusive parameter is one more than the last integer to facilitate using the length of a range of integers starting at 0. For example, it would be set to 5 for integers 0 through 4.
The following example demonstrates how to use the ForAll method to determine whether an array 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; } } } }
Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Show: