170 похожих чатов

Кто то может мне обяснить что такое possible multiple Enumeration.

Погуглил но че то не понимаю. Это ложное предупреждение или нет ?

17 ответов

70 просмотров

ienumerable вообще не комильфо проматывать несколько раз, это интерфейс предназначенный для однократной промотки. Некоторые реализации контейнеров могут позволить промотать несколько раз, но другие позволят лишь раз, а на второй промотке не вернут ничего. Поэтому это предупреждение стоит принять во внимание и, если тебе прямо нужно пробегать несколько раз, переведи ienumerable в тот же list

enumerable может подтягиваться из сети например, и если ты два раза по нему пройдешься, то ты два раза вытянешь данные из сети

Dmitry B.
ienumerable вообще не комильфо проматывать несколь...

ну вообще нет) метод Reset не просто так придумали и невозможность повторной энумерации скорее исключение

Hesu- Автор вопроса
Dmitry B.
ienumerable вообще не комильфо проматывать несколь...

Если моя коллекция будет всегда локальной и мне все ровно надо будет 2 раза перечислять их методами например Any и Count то выходит что предупреждение ложное ?

Hesu
Если моя коллекция будет всегда локальной и мне вс...

Лучше заменить IEnumerable на более подходящий тип

Hesu
Если моя коллекция будет всегда локальной и мне вс...

сейчас у тебя будет работать, но в будущем в ходе развития кода реализация коллекции может запросто измениться, что приведёт к баге. Это плохая практика - полагаться на конкретную реализацию, лучше сразу обезопаситься переводом в список/массив/IReadonlyCollection

Hesu- Автор вопроса
Dmitry B.
сейчас у тебя будет работать, но в будущем в ходе ...

Понимаю но меня беспокоит именно тот вопрос. Что если к локальной колекции будет выполнятся запрос например Last() или .Where() Все ровно оно будет перечислятся вверно ? Тогда выходит что предупреждение ложное ?

Hesu- Автор вопроса
Hesu
Понимаю но меня беспокоит именно тот вопрос. Что е...

Предупреждение не ложное, он ж корректно тебя предупреждает что сюда может прийти одноразовый ienumerable и все сломается. Если ты не будешь вызывать функцию с таким аргументом, то все норм, го предупреждение все равно остаётся корректным

Hesu- Автор вопроса
Hesu
что значит одноразовый IEnumerable ?

Который можно проитерировать только один раз

Hesu- Автор вопроса
Hesu
пример можно ?

Такой пример сложно придумать Но можно придумать пример, который будет очень долго итерироваться: IEnumerable<int> GetFriendsIdsFromVk(){ return vkClient.GetFriends().Select(f => f.Id); }

Сергей
ну вообще нет) метод Reset не просто так придумали...

Да нет, вообще-то именно просто так придумали. Вот что говорит документация: > The Reset method is provided for COM interoperability. It does not necessarily need to be implemented Я не знаю нормальных сценариев, в которых этот метод используется.

Hesu
Если моя коллекция будет всегда локальной и мне вс...

Тогда лучше напиши нормальный код поверх своей коллекции, не пользуясь LINQ. Быстрее будет работать.

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта