我正在創建一個方法,該方法將獲得最高平均評級的業務對象列表。該方法以商業清單開始。每個業務都包含一個包含評級(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