在字典中添加到字典的最有效方法
本文关键字:字典 有效 方法 添加 | 更新日期: 2023-09-27 18:01:48
在Java中完成任务后,我现在被要求在c#中产生相同的结果,我需要一些帮助。我使用的对象是:
Dictionary<int, Dictionary<String, List<int>>> full_map = new Dictionary<int, Dictionary<String, List<int>>>();
如果我已经在主字典的键中存储了一些东西,我想在内部字典中添加一个条目。
为了处理这个问题,我从逻辑开始,if (full_map.ContainsKey(int.Parse(pop_cy_st_intrst[0])))
{
Dictionary<String, List<int>> temp = new Dictionary<String, List<int>>();
//this is the logic I can't figure out.
}
else
{
full_map.Add(int.Parse(pop_cy_st_intrst[0]), temp_entry);
}
我对if语句的思考过程是将现有的字典存储在temp中,并向其中添加新的条目。然后,将更新后的字典放回键位置,但它总是抛出错误。
我相信这是可行的:
if (full_map.ContainsKey(int.Parse(pop_cy_st_intrst[0])))
full_map[int.Parse(pop_cy_st_intrst[0])].Add(innerKeyStr, innerValueList);
else
full_map.Add(int.Parse(pop_cy_st_intrst[0]), new Dictionary<string, List<int>>());
因此,如果full_map
外部字典包含键,那么您可以根据该键访问内部字典并添加任何您想要的内容(我不知道内部键是否为pop_cy_st_intrst[0]
,所以我把它留给您)。
如果full_map
不包含键,则为该键添加一个新的内部字典。
如果你想向内部字典添加这个内部字典是否已经存在,那么最后一行可以是
full_map.Add(int.Parse(pop_cy_st_intrst[0]), new Dictionary<string, List<int>>() { { innerKeyStr, innerValueList } });
使用主字典的索引访问内部字典
Dictionary<int, Dictionary<String, List<int>>> full_map =
new Dictionary<int, Dictionary<String, List<int>>>();
var index = int.Parse("10");
if (full_map.ContainsKey(index))
{
if (full_map[index] == null)
{
full_map[index] = new Dictionary<string, List<int>>();
}
}
else
{
full_map.Add(index, new Dictionary<string,List<int>>());
}
full_map[index].Add("Blah", new List<int>());
我看到有一些答案。这是照片发布时我正在做的。为清晰起见添加注释等。
Dictionary<int, Dictionary<String, List<int>>> full_map = new Dictionary<int, Dictionary<String, List<int>>>();
int key = 4;
if (full_map.ContainsKey(key))
{
// the main dictionary has an entry
// temp is the innerdictionary assigned to that key
var temp = full_map[key];
// add stuff to the inner dictionary
temp.Add("string key",new List<int>());
}
else
{
// the main dictionary does not have the key
// create an inner dictionary
var innerDictionary = new Dictionary<string,List<int>>();
innerDictionary.Add("string key", new List<int>());
// add it to the map with the key
full_map.Add(key,innerDictionary);
}
如何使用TryGetValue()构建代码?