如何使用Lambda表达式替换字符串参数

时间:2009-04-14 21:19:41

标签: c# linq

而不是打电话:

var shows = _repository.ListShows("PublishDate");

返回按发布日期排序的对象集合,我想使用这样的语法:

var shows = _repository.ListShows(s => s.PublishDate);

我需要写什么才能利用lambda作为参数?

3 个答案:

答案 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));