ArfatM Ответов: 2

Запрос Linq для получения строк от id 200 до 500 из 1000 идентификаторов (строк) orderby id и where notification! =Ложный


Цитата:
таблица пользователи содержит 1000 записей с идентификатором 1-1000 и мне нужно получить только от id 200 до 500 записей


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

List<string> users = ((from tbl in helper.GetTables<TBL_Users>()
                                where tbl.aaaa == true && tbl.bbbb != true
                                 orderby tbl.Id descending
                                 select new {
                                           tbl.email,
                                      }).Skip(start).Take(end - start);

2 Ответов

Рейтинг:
2

Maciej Los

За короткий срок:

var emails = your_data
    .Where(x=> x.aaaa==true && tbl.bbbb==false)
    .OrderByDescending(x=>x.Id)
    .Skip(199)
    .Take(301)
    .Select(x=>x.email)
    .ToList();


Выше запрос пропускает 199 записей и получает 301 запись, чтобы получить диапазон 200-500.
Примечание: это не значит, что вы получите ids от 200 до 500!


Рейтинг:
0

phil.o

Вы можете попробовать

List<string> emails = (from user in helper.GetTables<TBL_Users>()
                      where user.aaaa && !user.bbbb
                         && user.Id >= 200 && user.Id <= 500
                      orderby user.Id descending
                      select user.email
                      ).ToList();


ArfatM

Невозможно неявно преобразовать тип 'System.Коллекции.Generic.List<anonymoustype#1>' to 'System.Коллекции.Generic.List<string>'

phil.o

Решение пересмотрено.

Maciej Los

Я верю, что ты прав.
5ed!

phil.o

Спасибо :)