如何按两个值对序列进行分组并保持序列的顺序?

Fla*_*bug 7 c#

假设我有一个积分列表.

{(0,0), (0,0), (0,1), (0,0), (0,0), (0,0), (2,1), (4,1), (0,1), (0,1)}
Run Code Online (Sandbox Code Playgroud)

如何对此点进行分组,以便具有相同x值和y值的所有点都在一个组中,直到下一个元素具有其他值?

最终的序列应如下所示(一组点用括号括起来):

{(0,0), (0,0)},
{(0,1)},
{(0,0), (0,0), (0,0)},
{(2,1)},
{(4,1)},
{(0,1), (0,1)}
Run Code Online (Sandbox Code Playgroud)

请注意,订单必须完全相同.

Ani*_*Ani 4

我相信一个GroupAdjacent扩展,例如这里列出的扩展(来自 Eric White 的博客)正是您所寻找的。

// Create a no-argument-overload that does this if you prefer...
var groups = myPoints.GroupAdjacent(point => point);
Run Code Online (Sandbox Code Playgroud)