我很难理解如何让我的普通UI图层功能正常工作。首先,这是我的数据访问层中的功能似乎正常工作:
public class AvgReviewInfo
{
public int AvgReviewId { get; set; }
public int AvgNum { get; set; }
public double AvgTags { get; set; }
}
public IEnumerable<AvgReviewInfo> getAvgCuisine(int RestID)
{
// Return the count of the average number of reviews for a specific restaurant ID
var AvgCuisine = from REVIEW in db.REVIEWs
where REVIEW.REST_ID == RestID
group REVIEW by REVIEW.REVIEW_ID into t
select new AvgReviewInfo {
AvgReviewId = t.Key,
AvgNum = t.Count(),
AvgTags = t.Average(c => c.FOOD_ID) };
return AvgCuisine;
}
我尝试使用以下代码在我的UI图层中使用AVERAGE填充文本框:
BLgetDetails obj2 = new BLgetDetails();
var AvgCuisine = obj2.getAvgCuisine(restid);
lblAvgReviews.Text = AvgCuisine.Average().ToString();
我不清楚intellisense提示需要什么参数。我知道这一定很简单; O((
提前致谢!
答案 0 :(得分:1)
IEnumerable.Average的Func<T,int>
或Func<T,double>
重载需要您提供一个lambda函数,该函数选择您想要计算平均值的“AvgReviewInfo”字段。
基本上,您提供的功能可以为集合中的每个项目执行某些操作。
例如,要计算AvgNum字段的平均值,您将使用
lblAvgReviews.Text = AvgCuisine.Average(a=>a.AvgNum).ToString();
左侧a =>
的字面意思给出了个人 AvgReviewInfo ,我们称之为 a ,右侧a.AvgNum
表示返回 AvgNum
此lamba函数在IEnumerable中的每个项目上运行,并计算得到的平均值。