Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 11:54   #1
Kami-sama
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
По умолчанию Сортировка(делегаты и сбытия)!

Доброго времени суток всем.
Возникла такая необходимость: есть стандатный список(List) элементов определенного кдасса(My_class), в данном классе есть поле нахвание и дата, так вот нужно отсортировать элемены списка в зависимости от ситуации по дате либо по алфавиту, на сколько я знаю это делается через делегаты и события, но я так и не разобрался. Возможно ли это сделать стандртным методом Sort, класса List(2-ды перегрузив функцию CompareTo) с помощбю теъ же делегатов???? Если да поодскажите как это сделать.
Или другие варианты.
Спасибо!
Kami-sama вне форума Ответить с цитированием
Старый 06.12.2011, 13:10   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Код:
class Abc
    {
        public Abc(DateTime _time, string _name)
        {
            Name = _name;
            Time = _time;
        }
        public string Name;
        public DateTime Time ;
    }

    class Program
    {
        static int ComprByName(Abc a1, Abc a2)
        {
            // Тут сам так как не понятно по длине или по алфавиту и что с числами делать
            return 0;
        }

        static int ComprByDate(Abc a1, Abc a2)
        {
            if (a1.Time == a2.Time) return 0;
            if (a1.Time > a2.Time) return 1;
            else return -1;
        }

        static void Main(string[] args)
        {
            List<Abc> _abc = new List<Abc>() { new Abc(DateTime.Parse("12:12"), "Ffdf"), new Abc(DateTime.Parse("15:12"), "dfdf"), new Abc(DateTime.Parse("11:12"), "aa") };

            Console.WriteLine();
            _abc.ForEach(e => Console.WriteLine(e.Name + " " + e.Time.ToString()));
            _abc.Sort(new Comparison<Abc>(ComprByName));
            Console.WriteLine();
            _abc.ForEach(e => Console.WriteLine(e.Name + " " + e.Time.ToString()));
            _abc.Sort(new Comparison<Abc>(ComprByDate));
            Console.WriteLine();
            _abc.ForEach(e => Console.WriteLine(e.Name + " " + e.Time.ToString()));
            Console.ReadKey(true);
}
http://msdn.microsoft.com/query/dev1...SHARP)&rd=true

Последний раз редактировалось Guy; 06.12.2011 в 13:14.
Guy вне форума Ответить с цитированием
Старый 06.12.2011, 18:18   #3
Kami-sama
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
По умолчанию

СПасибо большое, то, что нужно.
Kami-sama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делегаты C# sir.andrey Помощь студентам 3 21.09.2011 10:06
MinGW, Делегаты. Пепел Феникса Общие вопросы C/C++ 14 28.07.2011 19:42
Делегаты CaypoH Общие вопросы .NET 3 04.01.2011 05:43
События и делегаты в C# как они работают _PROGRAMM_ Общие вопросы .NET 11 04.02.2010 06:44
Делегаты в MSIL Андрей Стрелков Общие вопросы .NET 6 20.02.2009 19:17