使用循环从字典中删除值

Ari*_*ule 2 c# dictionary

我有procedure基于特定条件从字典中删除值的位置(将键值与另一个字典进行比较)

在foreach loop我却不允许修改的字典.

是否有更好的方法可以做到这一点?

键值是字符串,

foreach (var archive in dictArchivedTitles)
{
       foreach (var kvp in dictAllTheFiles)
       {
           if (kvp.Key == archive.Key)
           {
               dictAllTheFiles.Remove(kvp.Key);
           }
       }
  }
Run Code Online (Sandbox Code Playgroud)

juh*_*arr 7

您可以执行以下操作.

foreach (var archive in dictArchivedTitles)
{
    if(dictAllTheFiles.ContainsKey(archive.Key)
        dictAllTheFiles.Remove(archive.Key);
}
Run Code Online (Sandbox Code Playgroud)

  • 你不能只是'删除'并忽略返回的表示成功的`bool`吗?`dictArchivesTitles.ForAll(archive => dictAllTheFiles.Remove(archive.Key))` (3认同)