Я сам заметил то же самое в ReSharper, и мне также было интересно, почему он не предупреждает, когда значение помещается в массив. Другой ответ здесь, к сожалению, неправильный, и, похоже, неправильно понимает, как реализованы замыкания, поэтому я подумал, что я попытаюсь объяснить (как мне кажется,) причину этого рефакторинга.
Как вы уже видели, результат одинаков, независимо от того, обернут ли он в массив или нет, поэтому рефакторинг на самом деле ничего не "исправляет" и возникают те же проблемы, с которыми можно столкнуться при обращении к обычному измененному замыканию после применения менять. Однако после изменения, поскольку сам массив count
не изменяется (только его содержимое), предупреждение «Доступ к измененному закрытию» больше не актуально.
Изменение на самом деле не делает проблему более очевидной (по крайней мере, на мой взгляд), поэтому может показаться, что это предложение по сути говорит ReSharper игнорировать проблему, не прибегая к довольно грязной // ReSharper disable AccessToModifiedClosure
механизм подавления ошибки.