我正在获取 System.InvalidOperationException:集合已被修改;枚举操作可能无法执行。我的以下代码中出现错误。

//temporary var for storing column sort orders according to view type
        Dictionary<string, bool?> tempColumnSortOrders=new Dictionary<string,bool?>(4);
 //Check for column name in col list
        if (tempColumnSortOrders.ContainsKey(fieldToSort))
        {
            //If exists set column sort order to new sort order
            //Set new sort order
            tempColumnSortOrders[fieldToSort] = sortOrder;
            var tempSortOrders = tempColumnSortOrders;
            //remove sort order of other columns
            foreach (var kvp in tempSortOrders)
            {
                //Reset other columns sort other than current column sort
                if (kvp.Key != fieldToSort)
                {
                    tempSortOrders[kvp.Key] = null;
                }
            }
            //Return name of column to sort
            return fieldToSort;
        }

堆栈跟踪

最佳答案

尝试使用此代码,

List<string> keys = new List<string>(tempSortOrders.Keys);
foreach (var key in keys)
{
    //Reset other columns sort other than current column sort
    if (key != fieldToSort)
    {
        tempSortOrders[key] = null;
    }
}

更新,

将集合转换为列表将解决此问题。

关于c# - Dictionary <string,bool?>错误-集合已修改;枚举操作可能无法执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18827780/

10-11 23:59
查看更多