Basi c Сортировка объектов класса по свойству объекта - PullRequest
0 голосов
/ 01 мая 2020

У меня есть список учетных записей для небольшой вещи, которую я делаю, и я хочу отсортировать их по балансу каждого из них: это то, что у меня есть, учетные записи в данных, и я хочу отсортировать их и снова заполнить listtext который является списком, который, как мы надеемся, должен показывать спину по порядку после их сортировки, к сожалению, он не работает, и я не могу понять, почему это просто базовая c пузырьковая сортировка

private void sortingmethodtwo()
        {
            Account tempvar;
            double[] storeArray = new double[count];
            for (int i = 0; i< count; i++)
            {
                for ( int j = 0; j<count; j++)
                {
                    if (data[i].getBalance() > data[j].getBalance())
                    {
                        tempvar = data[i];
                        storeArray[i] = storeArray[j];
                        data[i] = data[j];
                        data[j] = tempvar;

                    }
                }
            }
            listText.Items.Clear();
            foreach (Account a in data)
            {
                listText.Items.Add(a.getAccRefNo() + " " + a.getName());
            }

        }

Может кто-нибудь пролить свет свет для меня?

1 Ответ

1 голос
/ 01 мая 2020

Вы можете использовать лямбду для ее сортировки:

var sortedList=data.OrderBy(x=>x.getBalance()).ToList();

, если вы хотите, чтобы другим свойством изменили x=>x.getBalance() на это.

Для вашей сортировки по бублам ваша проблема в том, что что на самом деле это не алгоритм пузырьковой сортировки вообще. Bubble сравнивает текущий элемент со следующим и меняет их местами, если они не упорядочены, считая количество обменов. Он продолжает проходить через данные до тех пор, пока перестанут переставаться.

Ваш l oop сравнивает внутренние с внешними переменными l oop, вы должны сравнивать внутренние с внутренними + 1.

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