Как искать сложный Arraylist & Insert в заданной точке - PullRequest
1 голос
/ 21 марта 2011

Я пытаюсь создать простое приложение, которое может читать из текстового файла и записывать в текстовый файл. У меня есть основная форма, которая показана ниже, также у меня есть вторичная форма, также показанная ниже; Существуют также классы получения и установки для клиентов, счетов и транзакций. То, что я хотел бы сделать, - это поиск Клиента на основе любых имеющихся данных, но в основном это номер счета. Как бы я получить его, чтобы вернуть правильного клиента со всей информацией. В связи с этим было бы хорошо использовать поиск в качестве точки для вставки, скажем, новой учетной записи.

Ниже приведена основная форма для распечатывания информации о клиенте и получения информации из файла.

    //create account if all ok
    if (allInputOK)
    {
        //create Account
        Account temp = new Account(tempAccSortCode, tempAccNumber, tempAccNickName, tempAccDate, tempAccCurBal, tempAccOverDraft, tempNumTrans);

        //add to array
        Form1.accDetails.Add(temp);

        //finish up
        MessageBox.Show("Success Account added ");
        resetForm();
    }
}

    foreach (Customer c in bankDetails) 
    {
        lstOutput.Items.Add(" ");
        lstOutput.Items.Add(c.getCustomerNumber() + " " + c.getCustomerTitle() + " " + c.getFirstName()
                           + " " + c.getInitials() + " " + c.getSurname() + " " + c.getDateOfBirth()
                           + " " + c.getHouseNameNumber() + " " + c.getStreetName() + " " + c.getArea()
                           + " " + c.getCityTown() + " " + c.getCounty() + " " + c.getPostcode()
                           + " " + c.getPassword() + " " + c.getNumberAccounts());
        foreach (Account a in c.Accounts) 
        {
            lstOutput.Items.Add("\t" + a.getAccSort() + " " + a.getAccNumber() + " " + a.getAccNick() + " " + a.getAccDate()
                               + " " + a.getAccCurBal() + " " + a.getAccOverDraft() + " " + a.getAccNumTrans());

            foreach (Transaction t in a.Transactions) 
            {
                lstOutput.Items.Add("\t \t" + t.getDate() + " " + t.getType() + " " + t.getDescription() + " " + t.getAmount()
                                   + " " + t.getBalAfter());
            }
        }
    }

В приведенном выше коде для добавления учетной записи, где он добавляется в класс Account и arraylist, я думаю, что это неправильно с остальной частью программы в главной форме, которая использует основной список для хранения информации о клиенте и там учетных записей /transactions.

РЕДАКТИРОВАТЬ: приведенный выше фрагмент кода показывает добавление новой учетной записи, однако, похоже, он не работает, поскольку мне нужно найти правильного клиента, выполнив поиск в массиве клиентов, а затем вставив его в правильное место. Во втором фрагменте кода показан массив с основными списками, подключенными к каждому клиенту.

1 Ответ

0 голосов
/ 21 марта 2011

С чего начать?

Как правило, для запроса объектов вы можете использовать Linq to Objects.

Кроме того, я бы рекомендовал не использовать текстовые файлы для отслеживания вещей. Сначала они хороши, но быстро становятся громоздкими и медленными. Вдобавок ко всему, что, если ваше приложение падает перед сохранением? Посмотрите на «легкую базу данных», такую ​​как SQLite (да, это один «L»).

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