此linq代码在做什么?总结一下?

时间:2018-10-05 16:34:07

标签: c# linq

我是Linq和c#的新手。 C#专家可以向我解释这段代码应该做什么吗?

var sumPoints = (from p in maxPointList
                    orderby p.X
                group p by p.X into q
                select new Point
                {
                    X = q.Key,
                    Y = q.Sum(x => x.Y)
                }).ToList();

2 个答案:

答案 0 :(得分:2)

更容易可视化。假设您有以下几点:

X,Y
5, 10
5, 15
6, 4
7, 6
7, 7
4, 2
4, 3
2, 3

将其概括为(作为List )-按X,Y值累加给定X:

2,3
4,5
5, 25
6, 4
7, 13

答案 1 :(得分:0)

它接受maxPointList中的所有条目,按p.X排序 然后,它构建一个新的字典q,其中p.X的每个值在q中被分组为单个值。 对于每一个(具有相同值的p.X),它都会创建一个新的Point,其中Point.X是p.X值,Point.Y是该值所有p.X的总和。