Сортировка List.Sort с IComparer - C#
Формулировка задачи:
Есть класс компаратора:
Сортировка:
Ошибки:
Наиболее подходящий перегруженный метод для "System.Collections.Generic.List<Song>.Sort(System.Collections.Generic.IComparer<Song>)" имеет несколько недопустимых аргументов
Аргумент "1": преобразование типа из "radio.Sort.DurationComparer" в "System.Collections.Generic.IComparer<Song>" невозможно
tmp.Sort(comparer);
вызывает ошибки, почему? Во всех документациях и примерах такой способ вполне должен быть рабочим, же.
public class DurationComparer : IComparer<Song> { public int Compare(Song c1, Song c2) { return c1.Duration.CompareTo(c2.Duration); } }
public void Sort<Song>(ObservableCollection<Song> listToSort) { List<Song> tmp = new List<Song>(); foreach (Song song in listToSort) { tmp.Add(song); } DurationComparer comparer = new DurationComparer(); tmp.Sort(comparer); //var orderedSm = tmp.OrderBy(x => x.Duration).ToList(); }
Решение задачи: «Сортировка List.Sort с IComparer»
textual
Листинг программы
tmp.Sort((IComparer<Song>)comparer);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д