Как исправить двоичный поиск в winform C#
Моя проблема заключается в том, что когда я импортирую csv-файл в datagridview, то двоичный поиск работает очень хорошо. И во второй раз тоже. После третьего раза двоичный поиск не работает хорошо. Он не находит никаких объектов из списка ArrayList.
Я использую приложение Windows для этого проекта.
Что я уже пробовал:
Добавление данных в ArrayList после импорта csv:
ListOfPeople.Add(Something.Trim());
Преобразование значений datagridview в ArrayList перед поиском в двоичном формате:
foreach (var row in dataGridView2.Rows.Cast<DataGridViewRow>()) { ListOfPeople[row.Index] = row.Cells[0].Value.ToString().Trim(); }
ListOfPeople-это имя ArrayList.
Двоичный Поиск Код:
int index = this.ListOfPeople.BinarySearch(textBoxBinarySearch.Text); if (index != -1) { dataGridView2.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect; dataGridView2.Rows[index].Selected = true; dataGridView2.CurrentCell = dataGridView2.Rows[index].Cells[0]; MessageBox.Show("Index is equal to: " + index, "Binary Search"); textBoxBinarySearch.Clear(); }
Gerry Schmitz
Почему вы продолжаете "импортировать"? Вы "очищаете" перед каждым импортом? Или просто продолжать "добавлять"?
Galarist_00
Мне нужно импортировать файл. Я исправил свою проблему, добавив ArrayList.Очистить(); прежде чем импортировать другой файл CSV, если я понятно объекте datagridview.