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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2010, 22:42   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Сортировка List, по содержимому.

Привет всем! Подскажите кто нибудь как отсортировать экземпляр класса Garage, по маркам машин и по номерам. Сижу ломаю голову, вообще не въезжаю, как это сделать.
Код:
    public partial class Form1 : Form
    {
        Garage[] garage = new Garage[5];
        String[] cars = { "Mitsubishi", "Opel", "Ford", "Mersedes", "Toyota" };
        Int32[] number = { 1, 2, 3, 4, 5 };
        List<Garage> list = new List<Garage>(5);

        String nachalo;
        String konec;

        public Form1()
        {
            InitializeComponent();
            InitializeGarages();
        }

        public void InitializeGarages()
        {
            for (int i = 0; i < garage.Length; i++)
            {
                garage[i].car = cars[i];
                garage[i].number = number[i];
                list.Add(garage[i]);
            }

            for (int z = 0; z < garage.Length; z++)
            {
                nachalo = nachalo + garage[z].number + " " + garage[z].car + "\n";
            }
            SortGarage();
        }

        public void SortGarage()
        {
            list.Sort();
            MessageBox.Show(nachalo + "\n\n" + konec);
        }
    }

    public struct Garage
    {
       public String car;
       public Int32 number;
    }
Casper-SC вне форума Ответить с цитированием
Старый 21.07.2010, 12:21   #2
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Вот сам разобрался. А кто нибудь в курсе, можно сортировать структуры, а не классы по полям/свойствам?

Код:
    public partial class Form1 : Form
    {
        Garage[] garage = new Garage[5];
        String[] cars = { "Mitsubishi", "Opel", "Ford", "Mersedes", "Toyota" };
        Int32[] number = { 1, 2, 3, 4, 5 };
        List<Garage> list = new List<Garage>(5);

        String before = "До сортировки:\n";
        String after = "После сортировки:\n";

        public Form1()
        {
            InitializeComponent();
            InitializeGarages();
            SortGarage();
        }

        public void InitializeGarages()
        {
            for (int f = 0; f < garage.Length; f++)
            {
                garage[f] = new Garage();
            }

            for (int i = 0; i < garage.Length; i++)
            {
                garage[i].car = cars[i];
                garage[i].number = number[i];
                list.Add(garage[i]);
            }

            for (int z = 0; z < garage.Length; z++)
            {
                before = before + garage[z].number + " " + garage[z].car + "\n";
            }
            
        }

        /// <summary>
        /// Отсортировать гаражи
        /// </summary>
        public void SortGarage()
        {
            Array.Sort(garage,
                delegate(Garage garage1, Garage garage2)
            { 
                return garage1.car.CompareTo(garage2.car); 
            });
            


            for (int z = 0; z < garage.Length; z++)
            {
                after = after + garage[z].number + " " + garage[z].car + "\n";
            }
            MessageBox.Show(before + "\n\n" + after);
        }
    }

    public class Garage : IComparable
    {
       public String car;
       public Int32 number;

       public int CompareTo(object obj)
       {
           if (obj is Garage)
           {
               return this.car.CompareTo((obj as Garage).car);  // сравниваем названия машин
           }
           throw new ArgumentException("Объект не Garage");
       }
    }
Casper-SC вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файла по его содержимому error_13 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.04.2010 03:20
TGeckoBrowser обращение к содержимому postal2 Общие вопросы Delphi 0 04.03.2010 16:16
(STL LIST SORT) Сортировка по некольким критериям htatsu Общие вопросы C/C++ 4 19.07.2009 01:44
Название файла по содержимому ячеек. Хелп! Sum Microsoft Office Excel 6 07.04.2008 00:06
Поиск файла по содержимому Македонский Общие вопросы Delphi 7 07.09.2007 23:57