我有一个 IEnumerable<Point>收藏。假设它包含 5 个点(实际上它更像是 2000 个)
我想对这个集合进行排序,以便集合中的特定点成为第一个元素,所以它基本上是在特定点处切割集合并将它们重新连接在一起。
所以我的 5 点列表:
{0,0}, {10,0}, {10,10}, {5,5}, {0,10}
根据索引 3 处的元素重新排序将变为:
{5,5}, {0,10}, {0,0}, {10,0}, {10,10}
解决这个问题的计算效率最高的方法是什么,或者是否有一个已经存在的内置方法...如果是这样我似乎找不到一个!
请您参考如下方法:
var list = new[] { 1, 2, 3, 4, 5 };
var rotated = list.Skip(3).Concat(list.Take(3));
// rotated is now {4, 5, 1, 2, 3}
