2011-11-09 2 views
0

에 의해 필터링 한 후 하나 개의 속성으로 목록을 합산 I 클래스가 있습니다.다른 특성

람다 식을 사용하여 Part에 대해 sumNrOfParts을 얻고 싶습니다. sil 내 목록 SomePart입니다

double sum = sil.Sum(item => item.NrOfParts WHERE item.Part == SomePart); 

내가 찾고 있어요 특정 부분입니다 :

나는 이런 일을하고 싶습니다.

문제는 특정 사례에 대한 검색을 제한하기 위해 where 조건을 추가하는 방법을 모르겠다는 것입니다.

답변

4

where 절을 먼저 넣고 (where 메서드를 사용하여) 필터링 된 목록을 합산해야합니다.

double sum = sil.Where(i => i.Part == SomePart).Sum(i => i.NrOfParts); 
3

이를 사용할 수 있습니다

double sum = sil.Where(item => item.Part == SomePart).Sum(item => item.NrOfParts); 
1

이 시도 : - (`NrOfParts`는 INT이기 때문에)

double sum = Convert.ToDouble(sil.Where(item => item.Part == SomePart).Sum(item => item.NrOfParts)); 
+1

합계는 int를 반환하고 당신이 돈 ' int에서 double로 변환하려면 Convert.ToDouble을 사용해야합니다. – Ray

-1
 //Your range will come here 
     IEnumerable<double> d=Enumerable.Range(2.67,100); 
     // Your condition 
     d.Where(d1 => d1 % 2.0 == 0).CumulativeSum(); 

public static class Extension 

    { 
     public static IEnumerable<double> CumulativeSum(this IEnumerable<double> sequence) 
     { 
      double sum = 0; 
      foreach (var item in sequence) 
      { 
       sum += item; 
       yield return sum; 
      } 
     } 

    }