Listbox сортирует только по первой цифре - PullRequest
0 голосов
/ 21 ноября 2011

Я десериализирую текстовый файл, содержащий записи, и преобразую записи в объект Product. Я добавляю объекты в список и сортирую по первому полю, которое является Ценой и установлено как двойное. Я установил список для сортировки:

listBox1.Sorted = true;

Но список сортируется только по первой цифре, т. Е. Он помещает $ 15,00 выше $ 3,00. Какой самый лучший способ сортировки по всей цене, а не только по первой цифре?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Полагаю, для этого вам потребуется наследовать от ListBox.Переопределение метода void Sort() поможет:

public class AlphabeticalSortedListBox : ListBox {
    public AlphabeticalSortedListBox() : base() {
        Sorted = true;
    }

    protected override void Sort() {
        // apply your sorting algorithm on this.Items here.
        // You might want to use an algorithm that does well
        // in the best case (e.g. insertion sort [O(n)] to make it easy)
        // because in the common situation we have an almost sorted list of Items
    }
}
1 голос
/ 21 ноября 2011

Проблема в том, что сортировка производится не по числовому, а по алфавиту. Установите listBox1.Sorted = false;. Начните сортировку списка товаров по цене с помощью метод сортировки , затем добавьте каждый элемент в элемент управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...