gpt4 book ai didi

c# - 如何有条件地对两个列表的字段求和

转载 作者:行者123 更新时间:2023-11-30 22:15:42 25 4
gpt4 key购买 nike

我需要对两个列表的 X 和 Y 字段求和,但第一个 ID 等于第二个 ID。

我的代码:

//Program.cs

//(...)

class Point
{
public int Id { get; set; }
public int X { get; set; }
public int Y { get; set; }

public Point(int _Id, int _X, int _Y)
{
Id = _Id;
X = _X;
Y = _Y;
}
}

//(...)

List<Point> points = new List<Point>();
List<Point> sumsXY = new List<Point>();

//sum the X and Y of two lists, but points.Id must equal to sumsXY.Id
for (int i = 0; i < objcount; i++)
{
sumsXY[points[i].Id].X = sumsXY[points[i].Id].X + points[i].X;
sumsXY[points[i].Id].Y = sumsXY[points[i].Id].Y + points[i].Y;
}

需要帮助。

大卫

最佳答案

你在找这样的东西吗?

var sumsXY = points.GroupBy(x => x.Id)
.Select(g => new Point(g.Key, g.Sum(x => x.X),
g.Sum(x => x.Y)))
.ToList();

这会将具有相同 ID 的所有点组合在一起,并使用该组的 ID 以及该组中所有点的 X 和 Y 值的总和为每个组创建一个新点。

此答案假定 sumsXY 在此操作开始时为空。如果不是这种情况,您可能需要澄清您的问题并提供样本输入和预期输出。

关于c# - 如何有条件地对两个列表的字段求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com