LINQ OrderBy - 传递参数

时间:2014-10-21 11:20:09

标签: .net linq func

如何创建函数然后将其传递给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);

我应该使用什么类型的功能以及如何创建它?

1 个答案:

答案 0 :(得分:1)

假设您的Venues类的属性NameCity都属于string类型,则您的函数应为Func<Venue, string>类型,以使其正常工作。

Func<Venue, string> function;

并像这样使用它:

function = new Func<Venue, string>(p => p.Name);