gpt4 book ai didi

c# - 从 PointCollection 中检索成对的点?

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

我有一个点集合,存储在一个 PointCollection 中。

我需要集合中的点来画线。因此,例如,如果一个点集合有四个点,那将是两条线,因为我使用集合中的点对来绘制线。我正在寻找一种方法,最好使用 linq 和尽可能少的代码行,以基本上遍历我的 PointCollection,提取下一个可用的点对,然后使用点对绘制线。有没有办法使用 linq、lambda 表达式或扩展方法来做到这一点?

谢谢。

最佳答案

这里是获取配对的快速代码片段。

var listOfPairs = points
.Select((p, i) => new {p, i})
.GroupBy(x => x.i / 2)
.Where(g => g.Skip(1).Any())
.Select(g => g.Select(x => x.p).ToList())
.ToList();

与 foreach 循环相比,如果您有数千个点,则性能不佳。


这是另一个请求的表单,使用捕获的变量。

Point previous = points.FirstOrDefault();

List<Pair> pairs = points
.Skip(1)
.Select(p =>
{
Pair result = new Pair(p, previous)
previous = p;
return result;
})
.ToList();

关于c# - 从 PointCollection 中检索成对的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054673/

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