2011-08-17 142 views
2

我难以理解如何让我的平均UI层功能正常工作。首先,这里是我的数据访问层,它似乎是做工精细的功能:LINQ平均函数参数

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层的平均:

BLgetDetails obj2 = new BLgetDetails(); 
var AvgCuisine = obj2.getAvgCuisine(restid); 
lblAvgReviews.Text = AvgCuisine.Average().ToString(); 

我不明白intellisense的提示需要哪些参数。我知道这一定是简单的东西;!O((提前

感谢

+0

'AvgCuisine'是'AvgReviewInfo'的一个*集合* - 这真的是你想要的吗?如果是这样,你想要什么样的平均水平 - 平均水平? (我也鼓励你开始遵循.NET命名约定......) –

+0

那么你的问题和问题是什么? –

+0

Intellisense说什么? –

回答

1

IEnumerable.Average的Func<T,int>Func<T,double>重载需要您提供哪些选择“AvgReviewInfo”的该领域的lambda函数要计算出的平均值。

基本上你是供应,做东西的集合中的每一项功能。

例如,计算AvgNum场的平均你会使用

lblAvgReviews.Text = AvgCuisine.Average(a=>a.AvgNum).ToString(); 

凡左侧a =>字面意思给个人AvgReviewInfo我们呼吁一个,右侧a.AvgNum手段返回值AvgNum

这兰巴功能运行IEnumerable中的每个项目并计算得到的平均值。

+0

完美。非常感谢您添加背景信息。我是一个新手,我非常感谢你的帮助。问候〜 – Susan