Что нужно сделать, что бы отсортировать существующую коллекцию не по возрастанию, а по убыванию? Если можно, то приведите пример сортировки коллекции int-ов.
есть два варианта:
-
первый это использовать метод Sort(IComparer comparer); у коллекций. Данный метод должен принимать через параметр объект реализующий интерфейс IComparer
Например:
public class DescendingComparer : IComparer
{
// Проверяет равенство двух объектов без учета регистра строк.
readonly CaseInsensitiveComparer comparer = new CaseInsensitiveComparer();public int Compare(object x, object y) { // Для сортировки по убыванию. // Объекты, переданные для сравнения, меняются местами. int result = comparer.Compare(y, x); return result; }
}
-
второй это использовать методы из LINQ:
List<int> list = new List<int>() {1, 2 ,3, 4}; var selectedList = from u in list orderby u descending select u; либо же: var selectedList = list.OrderByDescending(u=>u);
Спасибо за разъяснение) и ещё такой вопрос методы из LINQ работают со всеми видами коллекций или только с обобщёнными?
Да, LINQ работают только с обобщёнными коллекциями, это видно из самих сигнатур методов статического класса Enumerable в пространстве имён System.Linq
спасибо