Сборник ошибок изменен, не может выполнить перечисление в списке sharepoint

Не знаю, почему я получаю вышеуказанную ошибку, я знаю, что она из-за UpdateWorkflowAssociation находится внутри foreach, но она мне нужна, поэтому простая помощь будет высоко оценена

                        `siteName = "http://xyz";

                        newCleanupDays = 5;
                        assoCounter = 0;
                        using (wfSite = new SPSite(siteName))
                        {
                            using (wfWeb = wfSite.OpenWeb())
                            {

                               //wfList = wfWeb.Lists[libraryName];
                                SPListCollection collList = wfWeb.Lists; //Open Lists
                                SPWorkflowAssociation _wfAssociation = null;

                                foreach (SPList oList in collList)
                                {
                                    if (oList.WorkflowAssociations.Count > 0)
                                    {
                                        foreach (SPWorkflowAssociation a in oList.WorkflowAssociations)
                                        {
                                            if (a.Name != null || a.Name != string.Empty)
                                            {
                                                a.AutoCleanupDays = newCleanupDays;
                                                _wfAssociation = a;
                                                assoCounter++;
                                            }
                                            else
                                            {
                                                _wfAssociation = a;
                                            }

                                        }
                                        oList.UpdateWorkflowAssociation(_wfAssociation);
                                    }

                                }
                                System.Console.WriteLine("\n" + wfAssoName + ": " + assoCounter.ToString() + " workflow association(s) changed successfuly!\n");
                            }
                        }`

1 ответ

Решение

Вместо

foreach (SPList oList in collList)

просто пиши

foreach (SPList oList in collList.ToList())

Таким образом, вы будете перебирать копию, которая не изменяется во время итерации, но реальная коллекция может быть обновлена.

Другие вопросы по тегам