我有一个双 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;