OldPCGuy Ответов: 2

Для последовательных данных, что лучше всего; массив, набор данных, datatable


Я новичок в Си#
У меня есть последовательные данные, которые я буду читать из потока файлов. Я переупорядочу данные в таблицу/массив и отобразлю их в окне DataView на главной форме. Данные всегда будут последовательными. Столбцы являются постоянными, но количество строк и таблиц варьируется и будет определяться во время выполнения. Данные-это, по сути, массив / структуры массива / структур.

Я хочу сохранить данные в памяти для быстрой загрузки в DataView.

Я должен использовать массивы, таблицы, таблицы данных, наборы данных, коллекции?

Что я уже пробовал:

Пока ничего, все еще на стадии планирования.

2 Ответов

Рейтинг:
2

OriginalGriff

Массивы здесь плохая идея, если вы не можете заранее предсказать, сколько строк вы будете использовать - они не расширяемы.
То же самое можно сказать и о списке-он использует массив внутри себя и постоянно заменяет его большим массивом, когда он заполняется: List< T> - действительно ли это так эффективно, как вы, вероятно, думаете?[^]
И оба они имеют вероятный недостаток, заключающийся в том, что вам нужно будет создать класс (или структуру) для хранения данных для строки, чтобы сохранить их.
Набор данных - это просто контейнер для хранения связанных таблиц данных: если у вас есть только один набор значений, то бессмысленно использовать набор данных вместо таблицы данных.
DataList не является стандартным классом C#: он является частью спецификации HTML5.
Итак...значит, это Дататабель? Что ж... может быть.

Это никогда не бывает так просто, как "всегда используйте это" - это будет зависеть от того, что именно вы пытаетесь сделать. DataTable - это" тяжелая "коллекция, с большим количеством "багажа", который вам может не понадобиться, что дает ему гораздо более тяжелую память и производительность, чем у списка, если все, что вы делаете, это пытаетесь отобразить данные, но с тем преимуществом, что гораздо проще организовать добавление или удаление столбцов времени выполнения. Список (или другой класс IEnumerable) нуждается в фиксированной структуре общедоступных свойств для непосредственного отображения столбцов, и это очень трудно изменить во время выполнения.

Но... подумайте о дисплее с точки зрения пользователя: если у вас есть более ста строк для отображения, вы хотите посмотреть на подкачку, поиск и фильтрацию вместо того, чтобы просто сбрасывать их на дисплей и позволять пользователю сортировать их - и это требует гораздо больше размышлений, чем решение о том, в каком контейнере хранить ваши данные!


Рейтинг:
1

Member 12920622

DataSets, Collection