Коллекции List c# максимальная длинна?

Добрый день!

Подскажите пожалуйста как решить вопрос обработки более триллиона значений?

Хранение происходить в NoSql LiteDb

При необходимости я извлекаю данные и мне их нужно обрабатывать, но задался вопросом если у меня будет более квадриллиона данных ? Сервак генерирует пакеты вроде все норм использую значение uint хватит на долго.

Но при получении данных с базы если произойдет переполнение и я не смогу вытащить в коллекцию, как поступить может кто знает?

Хотя бы подсказку куда смотреть...

Сосохраняю данные в базу
Curr c = p.curr.Dequeue();

                    lock (p.locker)
                    {
                        using (var db = new LiteDatabase(@"MyData.db"))
                        {
                            var col = db.GetCollection<Curr>("currency");
                            col.Insert(c);
                        }
                    }


Запрашиваю данные с базы
List<Curr> d;
            lock (p.locker)
            {
                using (var db = new LiteDatabase(@"MyData.db"))
                {
                    ILiteCollection<Curr> currDat = db.GetCollection<Curr>("currency");
                    d = currDat.FindAll().ToList();

                }
            }


Собственно сама коллекция
List<Curr> d;

Как обойти переполнение или сделать постраничное чтение кто может быть знает?

З.ы тестовое задание нужно сдать вечером... :)
  • Вопрос задан
  • 630 просмотров
Решения вопроса 1
@yuopi
C# developer
При запросе данных не делать ToList - оставить в IQueryable для дальнейших выборок.
Дальше можно будет сделать выборку + постраничный вывод, через

d.Where(...).Take(...).Skip(...) , где IQueryable<Curr> d
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
freeExec
@freeExec
Участник OpenStreetMap
0) Всё упирается в доступную оперативную память.
1) Если вы хотите показать их все пользователю, то ему не нужны эти ваши триллионы значений, ему и тысяча не нужна.
2) По возможности всю логику обработки данных делать на сервере SQL.
3) Пагинация в SQLite SELECT * FORM t LIMIT сколько, начиная_от_куда
Ответ написан
Griboks
@Griboks Куратор тега C#
Для галочки: максимальная длина ограничена типом индексатора, т.е. 2147483647 (int32).
Ответ написан
Комментировать
samodum
@samodum
Какой вопрос - такой и ответ
Сколько у тебя памяти
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы