我正在创建一个方法,该方法将获得最高平均评级的业务对象列表。该方法以商业清单开始。每个业务都包含一个包含评级(int)的评论对象列表。如何使用linq获取列表中列表的平均值?
举例说明:
list<Review> reviews = curtBusiness.getReviews();
reviews[1].GetRating();
使用for循环,我可以很容易地找到它,然而不幸的是,我需要使用LINQ,东西我几乎没有任何技能。
任何人都可以帮我做这个查询或类似的查询LINQ语句?
更新:
我想我可能已经偶然到一个解决方案
double average = busInCat.Max(b=> b.GetReviews().Average(r => r.getRateing()));
return busInCat.Where(b => b.GetReviews().Average(r => r.getRateing()) == average).ToList();
如果上面的代码是正确的,那么它首先找到收视率的最高平均在第一线。
然后在第二行中返回具有该平均评级的企业列表。任何人都可以证实这是linq表达式在做什么?
small nit-pick:'getRateing'应该拼写成'getRating',并且由于它是一种方法,所以应该是PascalCase:'GetRating' ... – 2015-03-31 22:15:31
不用担心我的拼写是令人遗憾的。 – Noob 2015-03-31 22:16:35