如何修改C#中的字典中的键值

如何更改字典中多个键的值。

我有以下字典:

SortedDictionary<int,SortedDictionary<string,List<string>>>

我想循环这个排序的字典,如果键值大于一定量,将键更改为键1。

正如Jason所说,你不能改变现有字典条目的键。你必须删除/添加使用一个新的密钥,如:

// we need to cache the keys to update since we can't
// modify the collection during enumeration
var keysToUpdate = new List<int>();

foreach (var entry in dict)
{
    if (entry.Key < MinKeyValue)
    {
        keysToUpdate.Add(entry.Key);
    }
}

foreach (int keyToUpdate in keysToUpdate)
{
    SortedDictionary<string, List<string>> value = dict[keyToUpdate];

    int newKey = keyToUpdate + 1;

    // increment the key until arriving at one that doesn't already exist
    while (dict.ContainsKey(newKey))
    {
        newKey++;
    }

    dict.Remove(keyToUpdate);
    dict.Add(newKey, value);
}
http://stackoverflow.com/questions/1937847/how-to-modify-key-in-a-dictionary-in-c-sharp

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何修改C#中的字典中的键值