这个 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();

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

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

它将其总结为(作为列表<第>点( - 根据给定 X 的 X 和 Y 值排序:

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

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

最新更新