Сортировка 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д