Доступ к измененному закрытию ... но почему?

Я видел здесь несколько похожих вопросов, но ни один из них, похоже, не был моей проблемой ...

Я понимаю (или думал, что понял) концепцию закрытия , и понять, что заставило Resharper пожаловаться на доступ к измененному закрытию, но в приведенном ниже коде я не понимаю, как я нарушаю закрытие.

Поскольку primaryApps объявлен в контексте цикла for, primary не изменится, пока я обрабатываю primaryApps . Если бы я объявил primaryApps вне цикла for, то, безусловно, у меня есть проблемы с закрытием. Но почему в приведенном ниже коде?

var primaries = (from row in openRequestsDataSet.AppPrimaries
                 select row.User).Distinct();

    foreach (string primary in primaries) {

        // Complains because 'primary' is accessing a modified closure
        var primaryApps = openRequestsDataSet.AppPrimaries.Select(x => x.User == primary);

Resharper недостаточно умен, чтобы понять, что это не проблема, или есть причина, по которой закрытие является проблемой, которую я не вижу?

5
задан James King 22 October 2010 в 17:35
поделиться