我有一个简单的问题,我的脑子里一片空白到:我有一个解释,看起来是这样的:C#中删除该条目从嵌套字典
Dictionary<string, Dictionary<string, string>> dict;
据我所知,字典。 Remove()将通过键删除任何条目,但我只需要从最里面的字典中删除一个项目。我会怎么做呢?
我有一个简单的问题,我的脑子里一片空白到:我有一个解释,看起来是这样的:C#中删除该条目从嵌套字典
Dictionary<string, Dictionary<string, string>> dict;
据我所知,字典。 Remove()将通过键删除任何条目,但我只需要从最里面的字典中删除一个项目。我会怎么做呢?
大概你有两个键:一个用于外部字典,另一个用于嵌套字典。
因此,假如你知道项存在,你可以使用
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);
}
尝试
dict["key"].Remove("childkey");
注意键是字符串值。
如果你只是有内部密钥,你可以做这样的事情:
string removeKey = "42";
Dictionary<String, String> removeDict = dict.Select(d=> d.Value).FirstOrDefault(d => d.ContainsKey(removeKey));
if(removeDict !=null)
removeDict.Remove(removeKey);
在此实现,如果有更多的则是一个寄存器具有相同innerKey只是第一次出现将被删除
获取内部字典并调用'Remove()'。即,获取父字典中的键指定的值。 – Tim
嵌套字典是一种气味。使用适当的数据结构。它可以是一些类的字典,它又有一本字典。不是嵌套的字典。 –