2011-11-09 74 views
0

总结通过过滤后一个属性列表我有一个类:由另一个属性

class Cars 
{ 
    String Part; 
    int NrOfParts; 
} 

List<Cars>

我想用lambda表达式来获得NrOfPartssum特定Part

我想是这样的:

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

其中sil是我的名单,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

试试这个: -

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

总和将返回一个int(因为'NrOfParts'是一个int),而你不知道吨需要使用Convert.ToDouble从int去一个双。 – 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; 
      } 
     } 

    }