Взгляните на метод List<T>.Sort()
, так как он будет делать то, что вам нужно.
Это решит вашу проблему необходимости использовать Convert.ToInt32
, потому что по умолчанию он будет использоватьIComparer
реализация фактического используемого класса, который уже есть у вас int
и string
.
Так для строк:
var list = new List<string> { "dd", "aa", "ss" };
list.Sort();
//Output: list = ["aa", "dd", "ss"]
Или для целых чисел:
var list = new List<int> { 1, 13, 5 };
list.Sort();
//Output: list = [1, 5, 13]
Если вы хотите работать с пользовательскими классами, просто сделайте так, чтобы ваш класс реализовал IComparable
, или вызвав вызывающего на Sort()
, предоставить делегат функции для использования.Для получения более подробной информации см. Первую ссылку.