gpt4 book ai didi

C# Linq 备用双 foreach

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:11 25 4
gpt4 key购买 nike

我有一个双 foreach 循环,我想知道是否可以巧妙地使用 Linq 来避免它。

所以我有一个几何形状,它由一组多边形定义,其中多边形是一组顶点。

我想计算顶点的平均值。这是我的代码,运行良好,但我觉得使用 Linq 可能会更漂亮。但是我想不出办法。谁能帮忙?

HashSet<Vector2> vertices = new HashSet<Vector2>();

// This double foreach is what I want to get using Linq if it is even possible.
foreach (var polygon in polygons.Select(a => a.points))
{
foreach (var vertex in polygon)
{
vertices.Add(vertex);
}
}

Vector2 c = new Vector2(0, 0);
foreach (var vertex in vertices)
{
c += vertex;
}

c.X = c.X / vertices.Count;
c.Y = c.Y / vertices.Count;
this.center = c;

最佳答案

polygons.SelectMany(p => p.Points).Distinct()

关于C# Linq 备用双 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914610/

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