我想根据 2 个条件对点云进行分组
在 Y 上很简单,所以我写
pointcloudH.GroupBy(KVP => KVP.Value.Y)
了 KVP 是KeyValuePair<string,System.Drawing.Point>
现在我也想按 X 对它进行分组,如果
X == (previousX + 1)
据我所知我应该我们ThenBy()
,但我必须在括号之间写什么?
这里有一个例子可以更好地说明我想要实现的目标
示例点云
(x|y) (1|1),(2|1),(4|1),(1|2),(2|3),(3|3),(4|3),(5|8),(9|10)
在第 1 步之后。看起来像这样
group1 (1|1),(2|1),(4|1)
group2 (1|2)
group3 (2|3),(3|3),(4|3)
group4 (5|8)
group5 (9|10)
在第 2 步之后。它应该看起来像这样
group1 (1|1),(2|1)
group2 (4|1)
group3 (1|2)
group4 (2|3),(3|3),(4|3)
group5 (5|8)
group6 (9|10)
当前代码
var Hgroup = pointcloudH.OrderBy(KVP => KVP.Value.Y) // order by Y
.GroupBy(KVP => KVP.Value.Y) // groub by Y
.ThenBy(KVP => KVP.Value.X); // group by X ???