簡體   English   中英

如何更改字典中的所有值<string, bool> ?</string,>

[英]How to change all values in a Dictionary<string, bool>?

所以我有一個Dictionary<string, bool> ,我想做的就是遍歷它並將字典中的所有值設置為 false 。 最簡單的方法是什么?

我試過這個:

foreach (string key in parameterDictionary.Keys)
    parameterDictionary[key] = false;

但是我收到錯誤消息:“集合已修改;枚舉操作可能無法執行。”

有一個更好的方法嗎?

只需將枚舉源更改為字典以外的其他內容。

foreach (string key in parameterDictionary.Keys.ToList())
  parameterDictionary[key] = false;

對於 .net 2.0

foreach (string key in new List<TKey>(parameterDictionary.Keys))
  parameterDictionary[key] = false;

在 .net 5 中,以下代碼段不再拋出:

var d = new Dictionary<string, int> { { "a", 0 }, { "b", 0 }, { "c", 0 }};

foreach (var k in d.Keys){
      d[k] = 1;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM