Переходный список Использование лямбда

Мне нужно переставить список элементов, чтобы выбранный элемент идет к концу списка, и последний элемент заменяет предыдущий, а предыдущий элемент заменяет его до него и так далее.

Например, если у меня есть список из десяти элементов, и выбранный элемент находится в положении 5, этот элемент отправляется в положение 9 и 9, заменит 8, затем 8 заменяет 7 и 7 заменяет 6 и шесть занимает положение 5. У меня удалось Чтобы получить желаемый результат, используя этот код:

List<int> numList = new List<int>();
int selectedNum = 5;//Selected at runtime
for (int i = 0; i < 10; i++) numList.Add(i);
int numListCount = numList.Count-1;
int tempNum = numList[numListCount];
List<int> tempList = numList.GetRange(selectedNum + 1,(numList.Count-selectedNum) - 2);
numList[numListCount] = selectedNum;
numList.RemoveRange(selectedNum, (numList.Count-selectedNum)-1);
numList.InsertRange(selectedNum, tempList);
numList.Insert(numListCount - 1, tempNum);

Результат:

0,1,2,3,4,6,7,8,9,5

Я уверен, что мой код уродливый Неэффективно: у меня есть два вопроса:

  1. Можно ли получить тот же результат с помощью лямбда? Если нет, то
  2. Как я могу уточнить мой код. Спасибо.
6
задан jball 8 September 2011 в 16:53
поделиться