Цикл OrderBy / ThenBy - вложенные списки в C #

У меня есть вложенный список,

List<List<String>> intable;

где я хотел бы отсортировать все столбцы. Проблема в том, что количество столбцов зависит от ввода пользователя.

Такая сортировка списка работает нормально (в этом примере 4 столбца)

var tmp = intable.OrderBy(x => x[0]);
tmp = tmp.ThenBy(x => x[1]);
tmp = tmp.ThenBy(x => x[2]);
tmp = tmp.ThenBy(x => x[3]);
intable = tmp.ToList();

Но когда я помещаю это в цикл, вот так:

var tmp = intable.OrderBy(x => x[0]);
for (int i = 1; i <= 3; i++)
{
        tmp = tmp.ThenBy(x => x[i]);
}
intable = tmp.ToList();

он больше не работает правильно и сортирует только четвертый столбец.

Ответы на вопрос(2)

Ваш ответ на вопрос