首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能在foreach中添加一个字典(Key,Value)?

在 C# 中,foreach 循环用于遍历集合中的每个元素,但它不允许在循环内部修改集合。因此,在 foreach 循环中直接添加一个字典 (Key, Value) 是不允许的。

如果您需要在遍历字典时添加新的键值对,可以使用 for 循环或者 foreach 循环遍历字典的键,并在循环外部添加新的键值对。例如:

代码语言:csharp
复制
Dictionary<string, int> dictionary = new Dictionary<string, int>();

// 添加初始数据
dictionary.Add("apple", 1);
dictionary.Add("banana", 2);

// 遍历字典的键
foreach (string key in dictionary.Keys)
{
    // 在循环外部添加新的键值对
    if (key == "apple")
    {
        dictionary.Add("orange", 3);
    }
}

或者使用 for 循环遍历字典的键:

代码语言:csharp
复制
Dictionary<string, int> dictionary = new Dictionary<string, int>();

// 添加初始数据
dictionary.Add("apple", 1);
dictionary.Add("banana", 2);

// 遍历字典的键
for (int i = 0; i< dictionary.Count; i++)
{
    string key = dictionary.Keys.ElementAt(i);

    // 在循环内部添加新的键值对
    if (key == "apple")
    {
        dictionary.Add("orange", 3);
    }
}

需要注意的是,在遍历字典时,如果添加新的键值对会导致键的数量发生变化,可能会导致循环出现异常。因此,在遍历字典时添加新的键值对需要谨慎处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券