Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сортировка масива типа DEVMODE

16K
20 июня 2008 года
MAcK
54 / / 09.06.2008
помогите с сортировкой, нужно отсортировать масив типа DEVMODE.
На делфях всё просто, а на шарпе пришлось вспоминать как вообще сортировать можно ....

DEVMODE temp;
for (int i = 0; i < CountArray; i++)
{

for (int j = 0; j < CountArray - 1; j++)
{

if (arrayDevMode[j].dmPelsWidth > arrayDevMode[j + 1].dmPelsWidth)
{
temp = arrayDevMode[j];
arrayDevMode[j] = arrayDevMode[j + 1];
arrayDevMode[j + 1] = temp;
}
else if (arrayDevMode[j].dmPelsHeight > arrayDevMode[j + 1].dmPelsHeight)
{
temp = arrayDevMode[j];
arrayDevMode[j] = arrayDevMode[j + 1];
arrayDevMode[j + 1] = temp;
}
else if (arrayDevMode[j].dmBitsPerPel > arrayDevMode[j + 1].dmBitsPerPel)
{
temp = arrayDevMode[j];
arrayDevMode[j] = arrayDevMode[j + 1];
arrayDevMode[j + 1] = temp;
}
else if (arrayDevMode[j].dmDisplayFrequency > arrayDevMode[j + 1].dmDisplayFrequency)
{
temp = arrayDevMode[j];
arrayDevMode[j] = arrayDevMode[j + 1];
arrayDevMode[j + 1] = temp;
}
}
}


ЧТо не так??
1.8K
20 июня 2008 года
Nadezda
62 / / 31.05.2004
Тебе по какому полю сортировать нужно?
Пытаешься сортировать по нескольким- не удивительно, что в результате полный бардак.

Простейшая сортировка:

Код:
void SortIntArray(AcGeIntArray &arr)
{
   int tempNr;
   for(int i=0; i<arr.logicalLength(); i++)
   {
      for(int j=0; j<arr.logicalLength()-1; j++){
         if (arr[j] > arr[j+1])
         {
            tempNr = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = tempNr;
         }
      }
   }
}


Напиши операцию сравнения двух структур DEVMODE и используй её в цикле один раз.
5
20 июня 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: MAcK
помогите с сортировкой, нужно отсортировать масив типа DEVMODE.

Взгляните на статические члены класса System.Array, и вы все поймете.

Вот пример использования встроенной сортировки.

Код:
public static void SortDevModeArray(DEVMODE[] array) {
    Array.Sort<DEVMODE>(array, delegate(DEVMODE a, DEVMODE b) {
        if(a.dmPelsWidth > b.dmPelsWidth)
            return 1;
        else if(a.dmPelsWidth < b.dmPelsWidth)
            return -1;        
       
        if(a.dmPelsHeight > b.dmPelsHeight)
            return 1;
        else if(a.dmPelsHeight < b.dmPelsHeight)
            return -1;
           
        if(a.dmBitsPerPel > b.dmBitsPerPel)
            return 1;
        else if(a.dmBitsPerPel < b.dmBitsPerPel)
            return -1;
           
        if(a.dmDisplayFrequency > b.dmDisplayFrequency)
            return 1;
        else if(a.dmDisplayFrequency < b.dmDisplayFrequency)
            return -1;
           
        return 0;
    });
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог