2011-08-17 5 views
2

내 평균 UI 레이어 기능을 작동시키는 방법에 대해 잘 모르겠습니다.LINQ 평균 함수 인수

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

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 층의 평균과 텍스트 상자를 채우기 위해 노력 첫째, 여기 잘 작동 것으로 보인다 내 데이터 액세스 레이어의 기능입니다

intellisense의 힌트에서 필요한 인수가 무엇인지 이해할 수 없습니다. 나는이 간단한 것이어야 알고 있습니다! ((

감사합니다 사전에 O를

+0

'AvgCuisine'은'AvgReviewInfo'의 * collection *입니다. 정말로 원하는 것입니까? 그렇다면 어떤 종류의 평균을 원하십니까? 평균의 평균입니까? (또한 .NET 네이밍 규칙에 따라 시작하도록 권장합니다.) –

+0

그래서 질문과 문제는 무엇입니까? –

+0

Intellisense는 무엇을 말합니까? –

답변

1

IEnumerable.Average의 Func<T,int> 또는 Func<T,double> 과부하는 "AvgReviewInfo"어떤 필드를 선택하는 람다 함수를 제공해야 당신이 원하는 예를 들어,

. 기본적으로이 컬렉션의 모든 항목에 대해 무언가를하는 함수를 공급하고 있습니다.

을의 평균을 계산 당신이 사용하는 것과 AvgNum 필드의 평균을 계산하는

좌측 a => 그대로 수단 15,
lblAvgReviews.Text = AvgCuisine.Average(a=>a.AvgNum).ToString(); 

우리 AvgNum

a.AvgNum 수단 의 값을 반환 , 오른쪽을 호출 개별 AvgReviewInfo을이 람 바어 기능 감안할 IEnumerable의 모든 항목을 실행하고 결과 평균이 계산됩니다.

+0

완벽. 배경 정보를 추가해 주셔서 감사합니다. 나는 정말 초보자 야, 정말 고마워. 안부 ~ – Susan