Принудительно использовать Take(), чтобы получить меньше, чем count, если элементов недостаточно

#c# #linq

#c# #linq

Вопрос:

Я хотел бы получить 3 или менее элемента (в случае, если после Skip() не нужно брать 3 элемента).

Возможно ли это с синтаксисом linq?

    myFilteredList = sortedFullList
      .Skip(skipCount)
      .Take(3);
  

Ответ №1:

Enumerable.Take делает это автоматически. Приведенный вами пример кода должен работать:

Take перечисляет источник и выдает элементы до тех пор, пока не будут получены элементы count или источник не будет содержать больше элементов.

Ответ №2:

Это должно работать как с вашего запроса Take(3) возвращает 3 элемента в большинстве — но меньше, если есть меньше элементов в перечислении.