我想遍历一些列表项,以特定位置为起点先向左再向右。
换句话说,就是这样:
结果是:
是否有一种方法可以使用一个for循环来实现这个结果?
或者LINQ中是否有某种条件方向?
换句话说,就是这样:
var items = new List<string>() { "Item1", "Item2", "Item3", "Item4", "Item5" };
string item = "Item3";
int index = items.IndexOf(item);
for (int i = index; i >= 0; i--)
yield return items[i];
for (int i = index + 1; i < items.Count; i++)
yield return items[i];
结果是:
Item3
、Item2
、Item1
、Item4
、Item5
。是否有一种方法可以使用一个for循环来实现这个结果?
或者LINQ中是否有某种条件方向?
items.Skip(2).Concat(items.Take(2))
这样的东西? - C.Evenhuis3,4,5,1,2
,而不是3,2,1,4,5
。 - Rafalonitems.Take(3).Reverse().Concat(items.Skip(3))
。 - Rafalon