[英]How to use Lambda expression to replace string parameter
而不是打電話:
var shows = _repository.ListShows("PublishDate");
為了返回按發布日期排序的對象的集合,我想使用如下語法:
var shows = _repository.ListShows(s => s.PublishDate);
要利用lambda作為參數,我需要寫些什么?
public IEnumerable<Show> ListShows(Func<Show, string> stringFromShow)
{
}
在該方法中,使用
string str = stringFromShow(show);
var shows = _repository.OrderBy(s=>s.PublishDate);
存儲庫中的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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.