列表:
List<int> list1 = new List<int>(){ 0, 1, 2, 3, 4, 5, 6 };
Run Code Online (Sandbox Code Playgroud)
假设我们想要重新排序。开头应为数字“2”
// 2,3,4,5,6,0,1
Run Code Online (Sandbox Code Playgroud)
或 5 号
// 5,6,0,1,2,3,4
Run Code Online (Sandbox Code Playgroud)
你如何用 C# 做到这一点?
原因:假设您在 List 中有一个给定数字的索引(数字 3,索引 3)。您想要获得右侧第二个数字 - 它将是 5。
不幸的是,如果起始数字位于列表的末尾(数字 5 和 6),则会抛出超出范围异常,因为没有 7 和 8!
这个想法是重新排序列表!
或者也许还有其他(更好的)方法来解决这个问题?
一点 Linq 就可以很容易地做到这一点:
List<int> list1 = new List<int>(new[] { 0, 1, 2, 3, 4, 5, 6 });
var numToStart = 4;
//reorderedList will be {4,5,6,0,1,2,3}
var reorderedList = list1.Skip(numToStart).Concat(list1.Take(numToStart));
Run Code Online (Sandbox Code Playgroud)