var src = Enumerable.Range(1, 100);

Func<int, bool> f1 = SerchValue;
Func<int, int, bool> f2 = SerchValue;

foreach (var s in src.Where(f1)) Console.WriteLine(s);
foreach (var s in src.Where(f2)) Console.WriteLine(s);

static bool SerchValue(int x, int index) {
return ((x + index) % 2) == 0;
}

static bool SerchValue(int x) {
return (x % 2) == 0;
}

匿名メソッド、ラムダ式を使用せずに、
Func<int, bool> f1 = SerchValue;
Func<int, int, bool> f2 = SerchValue;
の宣言を行わずして記述できる方法が不明。

教えて。