我可以定义一个委托并像这样编写查询。
Func<string, bool> filter = s => s.Length == 5;
IEnumerable<string> query = names.Where(filter)
.Select(x => x.ToUpper());
我的问题是,如果Func<T, TResult>
是一个将字符串作为参数并返回布尔值的委托,我为什么不能说:
delegate bool D(string s);
D d = new D(delegate(string s) { return s.Length == 1; });
IEnumerable<string> query = names.Where(d).Select...
?