C#从嵌套字典中删除项目

时间:2015-04-25 19:46:02

标签: c# dictionary nested

我有一个简单的问题,我的想法是空白的:我有一个看起来像这样的词典:

Dictionary<string, Dictionary<string, string>> dict;

据我所知,dict.Remove()会按键删除任何条目,但我只需要从最里面的字典中删除一个项目。我该怎么做呢?

3 个答案:

答案 0 :(得分:2)

很可能你有两个键:一个用于外部字典,一个用于嵌套字。

因此,假设您知道该条目存在,您可以使用

dict[outerKey].Remove(innerKey);

如果您不知道该条目是否存在,您需要以下内容:

Dictionary<string, string> innerDict;
if (dict.TryGetValue(outerKey, out innerDict))
{
    // It doesn't matter whether or not innerKey exists beforehand
    innerDict.Remove(innerKey);
}

答案 1 :(得分:2)

如果你只有内键,你可以这样做:

string removeKey = "42";

Dictionary<String, String> removeDict = dict.Select(d=> d.Value).FirstOrDefault(d => d.ContainsKey(removeKey));

if(removeDict !=null)  
    removeDict.Remove(removeKey);

在此实现中,如果有多个具有相同innerKey的寄存器,则第一次出现将被删除

答案 2 :(得分:1)

尝试

dict["key"].Remove("childkey");

请注意,键是字符串值。