Represents the method that defines a set of criteria and determines whether the specifIEd object meets those criteria.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
version Information:
.Net Framework
Supported in: 3.0, 2.0
.Net Compact Framework
Supported in: 2.0
Syntax:
C# | public delegate bool Predicate<T> ( T obj)
Type Parameters
-
- T
The type of the object to compare.
Parameters
- obj
-
The object to compare against the criteria defined within the method represented by this delegate.
Return Value
true if obj meets the criteria defined within the method represented by this delegate; otherwise, false
Notes:
Visual Basic and C# users do not need to create the delegate explicitly, or to specify the type argument of the generic method. The compilers determine the necessary types from the method arguments you supply.
One example: Predicate is used explicitly.
public
yle="COLOR: #000000"> static void Main(){
int [] zArray={1,2,3,1,2,3,1,2,3};
Predicate<int> match=new Predicate<int>(MethodA<int>);
int [] answers=Array.FindAll(zArray, match);
foreach(int answer in answers) {
Console.WriteLine(answer);
}
}
public static bool MethodA<T>(T number) where T:IComparable {
int result=number.CompareTo(3);
return result==0;
}
Another example: Predicate is used implicitly.
using System;
using System.Drawing;
public class Example
{
public static void Main()
{
// Create an array of five Point structures.
Point[] points =0000"> { new Point(100, 200),
new Point(150, 250), new Point(250, 375),
new Point(275, 395), new Point(295, 450) };
// To find the first Point structure for which X times Y
// is greater than 100000, pass the array and a delegate
// that represents the ProductGT10 method to the Shared
// Find method of the Array class.
Point first = Array.Find(points, ProductGT10);
// Note that you do not need to create the delegate
// explicitly, or to specify the type parameter of the
// generic method, because the C# compiler has enough
// context to determine that information for you.
// Display the first structure found.
Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
}
// This method implements the test condition for the Find
// method.
private
e="COLOR: #000000"> static bool ProductGT10(Point p)
{
if (p.X * p.Y > 100000)
{
return true;
}
else
{
return false;
}
}
}
/* This code example produces the following output:
Found: X = 275, Y = 395
*/