При сортировке с помощью Linq вы обычно присваиваете OrderBy
свойство и, в конечном итоге, IComparer
, а не функцию сортировки.Например:
class Person {
public int Age {get; set;}
}
public static void Main() {
var ps = new List<Person>();
ps.Add(new Person{Age = 1});
ps.Add(new Person{Age = 5});
ps.Add(new Person{Age = 3});
var sorted = ps.OrderBy(p => p.Age);
foreach(p in sorted) {
Console.WriteLine(p.Age);
}
}
Здесь Linq будет знать, как правильно сортировать целые числа.
Не предоставляя больше контекста (например, что такое i.Sort
, какова его цель, что вы делаетехочу сделать с этим), было бы трудно быть более конкретным для вашей проблемы.
Тем не менее, я вполне уверен, что вы неправильно понимаете OrderBy
: вы должны дать ему лямбда-выражение, которое идентифицирует свойство объектов, содержащихся в вашей последовательности, и затем Linq отсортирует вашу последовательность в соответствии с обычным порядком типа этого свойства (или в соответствии с другим порядком, который вы определяете для этого типа, используя IComparer).