2014-02-25 3 views
2

열에 평균 P & L을 얻으려고합니다. 열의 유형은 double이지만 다음과 같은 오류가 계속 발생합니다.C# Datatable : 열의 평균 계산

추가 정보 : 집계 인수의 구문 오류 : 가능한 '하위'한정자를 사용하여 단일 열 인수가 필요합니다. 이 라인이 실행되는 경우

이 발생합니다

avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", ""); 

는 또한, 여기에 명확히하기 위해 몇 가지 추가 코드입니다 :

dt.Columns.Add(Columns.FiveSecBeforePnL, typeof(double)); 

foreach(DataRow row in dt.Rows) 
{ 
    row[Columns.FiveSecBeforePnL] = some value; 
} 

double avgFiveSbefore; 
avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", ""); 
+0

당신이 숫자로 시작하지 않는 무언가에 열 이름을 변경하려고 할 수 있습니까? 그 생각만으로도 그 원인 일 수 있습니다. –

답변

4

은 대괄호로 열 이름을 둘러싸보십시오.

avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", ""); 

또한 같은 같은 할 LINQ를 사용할 수 있습니다

double avgFiveSbefore = dt.AsEnumerable() 
          .Average(r => 
           r.Field<double>(Columns.FiveSecBeforePnL)); 
+0

항상 벙어리 문법 오류로 나를 절약 해 주셔서 감사합니다! @ 하빕 – kknaguib

+0

@kknaguib, 오신 것을 환영합니다. – Habib