使用LINQ条件

时间:2013-08-19 15:39:06

标签: c# linq

给出一个班级

public class data
{
   public string x;
   public double y;
}

List<data> myList = new List<data>();

然后使用字符串“odd”,字符串“even”和相应的数字填充列表。

如何使用linq

得到所有x =“odd”的总和

这是最基本的,请原谅我的无知......

5 个答案:

答案 0 :(得分:4)

由于您提出了一个基本问题,请从此处开始:Standard Query Operators Overview。 “相关部分”下的所有内容都值得一试。

答案中使用的函数的参考(带示例)位于:Where(predicate)Sum(selector)

答案 1 :(得分:3)

使用Wheredata获取x == "odd"并使用Sum获取总和。

double sumOdd = myList.Where(d => d.x == "odd").Sum(d => d.y);

答案 2 :(得分:3)

试试这个

 List<data> myList = new List<data>();
 var odd = myList.Where(p => p.x == "odd").Sum(z => z.y) ;
 var even = myList.Where(p => p.x == "even").Sum(z => z.y) ;

答案 3 :(得分:3)

你可以这样做:

var sum = myList.Where(d => d.x == "odd").Sum(d => d.y);

答案 4 :(得分:3)

晚会,但你没有 使用WhereSum:)

dataList.Aggregate(0, (result, next) => result + (next.x == "odd" ? next.y : 0.0));