快速且可能简单的Lambda问题:
我有一家餐厅评论.我想查询一个:
像这样的东西:
var _Result = AllRestaurants
.Max(x => x.AverageRating)
.AndMax(x => x.ReviewCount)
.AndMax(x => x.NewestReviewDate)
.AndMin(x => x.DistanceAway);
Run Code Online (Sandbox Code Playgroud)
现在,我知道这是伪代码.但它完美地描述了它!
当然,在多个陈述中,这很简单.
只是想知道这是否可能在一个声明中,而不会破坏可读性.
先感谢您.我知道有些人喜欢查询问题!
你不能有多个最大值或分钟,这没有意义.你需要某种启发式方式:
.Max(x => x.AverageRating * x.ReviewCount - x.DaysSinceLastReview - x.DistanceAway)
Run Code Online (Sandbox Code Playgroud)
也许这样呢?
var bestRestaurant = AllRestaurants
.OrderByDescending(r => r.AverageRating)
.ThenByDescending(r => r.ReviewCount)
.ThenByDescending(r => r.NewestReviewCount)
.ThenBy(r => r.DistanceAway)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
您需要更改语句的顺序以反映哪个是最重要的.