如何创建函数然后将其传递给OrderBy方法?
我想基于字符串创建OrderBy条件,然后将其传递给另一个方法,该方法将返回已排序的Collection<Venue>
这样的事情:
string sortby;
var function;
if (sortby == "name")
// function = (p => p.Name)
else if (sortby == "city")
// function = (p => p.City)
Collection<Venue> venues = GetVenue(function);
等。 GetVenue
在某处调用:
return venues.OrderBy(function);
我应该使用什么类型的功能以及如何创建它?
答案 0 :(得分:1)
假设您的Venues类的属性Name
和City
都属于string
类型,则您的函数应为Func<Venue, string>
类型,以使其正常工作。
Func<Venue, string> function;
并像这样使用它:
function = new Func<Venue, string>(p => p.Name);