- У меня есть ConcurrentDictionary
- Для эффективное разбиение по страницам, мы хотим реализовать "получить N элементов, начиная с ключа K"
Код: Выделить всё
public IEnumerable Get( TId fromKey, int count )
{
// parameter validation left out for brevity
return items.Keys // KeyCollection of the Dictionary, please assume 'items' is a class field
.SkipWhile(key => key != fromKey)
.Take(count)
.Select(x => items[x])
.ToList();
}
Если бы я мог пропустить, я мог бы просто выполнить .Skip(n).Take(m) для Значения, но это явно не требуется. Для меня требование: начиная с клавиши K, вернуть N элементов.
Может быть, я слишком много думаю об этом и мне следует отступить. Но у меня такое ощущение, что я здесь что-то упускаю.
Поэтому мой вопрос: Есть ли способ сделать это без необходимости «пропускать» в KeyCollection или ValueCollection словаря?
ИЗМЕНИТЬ
- — здесь я взял задачу. Сохранение этого Типа не высечено в камне.
Код: Выделить всё
ConcurrentDictionary - Порядок не является приоритетом. Пожилые люди и ПО считают это «достаточно хорошим», чтобы следовать любому порядку, полученному из KeyCollection. Но об этом стоит помнить при рассмотрении возможных запросов на новые функции в будущем.
Подробнее здесь: https://stackoverflow.com/questions/662 ... ts-startin
Мобильная версия