Проблема с сортировкой списка<xyz <String, String >>, ошибка: InvalidOperationException
Я пытаюсь отсортировать общий список и получаю InvalidOperationException
ошибка
У кого-нибудь есть предложения как это исправить?
List<XYZ<String, String>>
список передается как параметр через функцию.
func( List<XYZ<String, String>> PassedList) {
PassedList.Sort();
}
Любое предложение будет действительно полезным.
3 ответа
Я решил проблему с помощью оператора linq.
вместо того, чтобы использовать PassedList.Sort()
Я использовал следующее утверждение:
PassedList = PassedList.OrderBy( x => x.Column1).ToList();
Ваш XYZ
должен реализовать IComparable
или (еще лучше) IComparable<XYZ<T, U>>
,
Если это невозможно, вы должны либо создать класс, который реализует IComparer
или (опять лучше еще) IComparer<XYZ<String, String>>
и использовать перегрузку Sort()
который принимает экземпляр такого объекта, или же использует форму, которая принимает делегат или лямда-выражение, которое соответствует Comparison<XYZ<String, String>>
(принимая два XZY<String, String>
аргументы и возвращение int
).
Если Sort()
метод не может понять, какой XYZ
до которого потом не может их отсортировать.