C#. Метод Sort для контейнера List. Помогите разобраться как работает данный код...
Код:
private void button7_Click(object sender, EventArgs e)
//Сортировка элементов
{
Vector1.Sort(delegate(MyClassPolymorph Item1, MyClassPolymorph Item2)
{
return Item1.Info.CompareTo(Item2.Info);
});
binding1.ResetBindings(false);
}
//Сортировка элементов
{
Vector1.Sort(delegate(MyClassPolymorph Item1, MyClassPolymorph Item2)
{
return Item1.Info.CompareTo(Item2.Info);
});
binding1.ResetBindings(false);
}
Покажите тело метода sort
Гдеж его взять это стандартный метод контейнера List
В первую очередь вам надо понять, что вам не надо знать как на самом деле работает функция Sort.
Важно, что она требует некий предикат в качестве аргумента. Предикатом в данном случае является анонимный метод, заключающийся в конструкции delegate{ }.
Ваш вектор Vector1 состоит из объектов класса MyClassPolymorph. Каждый экземпляр класса ItemX имеет член Info, который является типом System.String, что в свою очередь очевидно из наличия метода CompareTo. Сравнивая 2 строки, этот метод возвращает некий результат . Он может иметь значение, которое сообщает о том, какая из сравнимаемых строк Больше. В зависимости от полученного результата сортировщик принимает решение о том, как именно должны быть упорядочены объекты. Иными словами предикат - это критерий, по которому вы говорите сортировщику, как должны быть упорядочены элементы контейнера Vector1.