Повторить запрос LINQ

Учитывая мой текущий метод расширения:

public static List<char> rotate(this List<char> currentList, int periodes) {
    if (periodes != 1) {
        int x = currentList.Count() - 1;
        return rotate(currentList.Skip(x).
             Concat(currentList.Take(x)).ToList<char>(), periodes - 1);
    }
    return currentList;
}

Исходное состояние:

ring = new List<char>() { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };

Текущий результат для ring.rotate (10);

J A B C D E F G H I
I J A B C D E F G H
H I J A B C D E F G
G H I J A B C D E F
F G H I J A B C D E      Recursive Steps
E F G H I J A B C D
D E F G H I J A B C
C D E F G H I J A B
B C D E F G H I J A

A B C D E F G H I J      Result

Есть ли способ избавиться от этого цикла while и любых других шанс интегрировать повторение в запрос LINQ?

Лучшее
Хенрик

6
задан Henrik P. Hessel 30 September 2010 в 17:02
поделиться