【发布时间】:2010-08-04 07:56:30
【问题描述】:
我知道谓词是委托给返回 bool 并采用泛型参数的函数,当我说:
mycustomer => mycustomer.fullname == 1
其实意思是:
delegate (Customer mycustomer)
{
return mycustomer.fullName == "John";
}
我在传递这个 lambda 表达式时传入的参数是:
public delegate bool Criteria<T>(T value) 原生称为谓词
但是我不明白我说mycustomer=>mycustomer.fullname是什么意思
在customers.OrderBy(mycustomer=>mycustomer.fullname);
如何实现OrderBy 之类的东西?如何告诉方法对哪个属性执行操作!和前面的例子一样吗?
举个例子,我想创建一个方法来获取特定属性的集合的所有值:
list<string> mylist = customers.GetPropertyValues(cus=>cus.Fullname);
提前致谢。
【问题讨论】:
-
Predicate是一个返回bool的函数。mycustomer=>mycustomer.fullname是Func<Cutomer, string>(我猜fullname是string类型)。您应该阅读迭代器(IEnumerable、yield、...)。如果您正在使用数据库等 - 一切都与表达式树有关。