而不是打电话:
var shows = _repository.ListShows("PublishDate");
返回按发布日期排序的对象集合,我想使用这样的语法:
var shows = _repository.ListShows(s => s.PublishDate);
我需要写什么才能利用lambda作为参数?
答案 0 :(得分:5)
public IEnumerable<Show> ListShows(Func<Show, string> stringFromShow)
{
}
在该方法中,使用
string str = stringFromShow(show);
答案 1 :(得分:1)
var shows = _repository.OrderBy(s=>s.PublishDate);
答案 2 :(得分:1)
存储库中的ListShows方法应如下所示:
public static IEnumerable<Show> ListShows(Comparison<Show> comparison)
{
List<Show> shows = new List<Show>();
... code here ...
shows.Sort(comparison);
return shows;
}
然后您可以使用lambda来执行以下操作(它不像您的示例那么简单,但它可以工作):
ListShows((first, second) => first.PublishDate.CompareTo(second.PublishDate));