У меня есть библиотека, которая принимает только тип неизменяемой коллекции. Я хотел бы иметь функцию, которая принимает одну из этих коллекций и выполняет некоторые изменения в этой коллекции, возвращая новую коллекцию, содержащую внесенные изменения.Заменить, Вставить, Удалить операции над IEnumerable
Я бы хотел использовать синтаксис LINQ вместо копирования этой коллекции в список и обратно.
Добавить операции легко для меня: concat перечислимый с другим. Но что делать с заменой (при заданном индексе возвращаем значение, указанное вместо значения IEnumerable), Insert (при заданном индексе, возвращайте заданное значение, а затем продолжайте итерацию по IEnumerable) или Delete (при заданном индексе пропустите IEnumerable стоимость)?
Существуют ли функции, подобные этой, в среде .NET или в другой библиотеке? Если нет, то как я могу реализовать эти функции?
Я искал операторов LINQ (которые всегда возвращают новый IEnumerable, конечно). Я не уверен, что отсутствие таких операторов может быть объяснено невосприимчивостью IEnumerable. В условиях существования Where, Select, Reverse и т. Д. Я не вижу причин, почему мои предложенные функции были бы против основной философии LINQ. Тем не менее, я вижу, что существует вероятность того, что новички ошибочно принимают IEnumerables для списков и путают, что исходный перечислимый никогда не изменяется. Спасибо за ответ, хотя. –