myList.AsQueryable().Sort((r, s) => int.Parse(r).CompareTo(int.Parse(s)));
потребует некоторой настройки, если это объекты, просто используйте int.Parse(r.StringColWithNums)
или любое другое поле.
Упс, извините, не прочитал все ОП, чтобы увидеть, что на нем тоже есть буквы, и вам нужен динамический linq, редактирование
EDIT
Я не знаю, что вы сможете сделать это, используя Dynamic linq и передав IComparer. Возможно, вы сможете сделать это после получения результатов (то есть, как я изначально писал, с изменениями). Прокомментируйте, если вы хотите продолжить эту строку.