Простой LINQ-способ взять n различных элементов из (бесконечного) IEnumerable - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть генераторный бесконечный источник IEnumerable, из которого я хочу взять n различных предметов. Есть ли простой способ сделать это в стиле LINQ (который все еще быстр)?

Если не существует простого способа, является ли предложенный мной алгоритм хорошей идеей?:

  1. Взять n предметов
  2. Call Distinct
  3. Счетчик вызовов
  4. Если количество
  5. Взять n - Количество предметов
  6. Согласуй тех и иди 2
Конец

1 Ответ

0 голосов
/ 09 сентября 2018

Просто позвоните Distinct до Take, чтобы взять n различных элементов:

var nDistincItems = source
    .Distinct()
    .Take(n);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...