如何在 C# 中从字典中删除 KEY

Ang*_*ana 20 c# dictionary key

我有一本名为d如上所述的字典。

Dictionary<string, int> d = new Dictionary<string, int>();
    d["dog"] = 1;
    d["cat"] = 5;
Run Code Online (Sandbox Code Playgroud)

现在,如果我想删除密钥,"cat"我无法使用该Remove()方法,因为它只删除关联的相应值,而不删除密钥本身。那么有没有办法删除密钥呢?

Cyr*_*lie 32

Remove() 方法实际上从字典中删除现有的键值对。还可以使用clear方法删除字典中的所有元素。

var cities = new Dictionary<string, string>(){
    {"UK", "London, Manchester, Birmingham"},
    {"USA", "Chicago, New York, Washington"},
    {"India", "Mumbai, New Delhi, Pune"}
};

cities.Remove("UK"); // removes UK 

//cities.Remove("France"); //will NOT throw a an exception when key `France` is not found.
//cities.Remove(null); //will throw an ArgumentNullException

}

cities.Clear(); //removes all elements
Run Code Online (Sandbox Code Playgroud)

您可以阅读此内容以获取更多信息https://www.tutorialsteacher.com/csharp/csharp-dictionary

  • 如果未找到键(仅当键为空时),“Remove”不会抛出异常。如果字典中没有该键,则返回 false。 (12认同)

Tim*_*ter 7

这里的文档有点不清楚,你是对的

从 Dictionary<TKey,TValue> 中删除具有指定键的值。

如果你向下滚动一点,你会看到更好的措辞:

以下代码示例演示如何使用该Remove方法从字典中删除键/值对。

字典中永远不存在没有值的键(即使null值也是值)。它始终是一个KeyValuePair<TKey, TValue>. 所以你可以简单地使用Remove来删除猫的入口。

d.Remove("cat"); // cat gone
Console.Write(d.Count); // 1
Run Code Online (Sandbox Code Playgroud)