,不再撥打電話:如何使用Lambda表達式替換字符串參數
var shows = _repository.ListShows("PublishDate");
返回由發佈日期排序對象的集合,我想用這樣的語法:
var shows = _repository.ListShows(s => s.PublishDate);
我需要寫什麼來利用lambda作爲參數?
,不再撥打電話:如何使用Lambda表達式替換字符串參數
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));