Thank you Fabrice - you nailed it!
The text suggests, rather than using:

delegate Boolean FilterDelegate(Process process);

to instead use the Predicate<T> syntax... no issue there...

However, how would the declared version be implemented?
Assuming Predicate<T> did not exist, how would the example work with:

delegate Boolean FilterDelegate(Process process);

??
Thanks Fabrice - I suppose that makes sense since each are independent pointers and it's fair to reason, each resolve to a different memory location.
Thanks - as i said, i understood that using Predicate<T> was the way to go.

I am however curious regards the "old shool" approach.
Fabrice, why does this not work?


delegate Boolean FilterDelegate(Process process);
static bool Filter(Process process)
{
return process.WorkingSet64 > 1024 * 1024 * 20;
}
static void Main()
{
DisplayProcesses(Filter);
DisplayProcesses(process => process.WorkingSet64 >= 1024 * 1024 * 20);
}

static void DisplayProcesses(FilterDelegate match)
{
DisplayProcessesNow(match);
}

static void DisplayProcessesNow(Predicate<Process> match)
{
...
}


Neither DISPLAYPROCESS call to DISPLAYPROCESSNOW works... am i missing a cast?