从字典中获取3个参数<;字符串,字典<;字符串操作>>;
本文关键字:字符串 lt gt 字典 操作 获取 3个 参数 | 更新日期: 2023-09-27 18:26:58
我有以下代码,我需要使用foreach的3个参数:
Dictionary<string, Dictionary<string, Action>>
我尝试过使用DictionaryEntry
和KeyValuePair
,但它们一直返回2个值而不是3。
编辑:我正在尝试使用元组,并试图将其实现到我的代码中,但我无法访问List(元素)内部的元组。代码:
foreach (List<Tuple<string, string, Action>> element in Classes)
{
if (ActualText.StartsWith(element.Item1))
{
string temp1 = ActualText.TrimStart(element.Item1.ToArray());
if (temp1 == element.Item2)
element.Item3();
else
print("Unknown extension " + temp1);
}
}
我同意,您应该尝试在这里使用Tuple。试试这个代码:
var foo = new Tuple<string, int, int>("bar", 1, 2);
我想你要找的是:
Dictionary<string, Dictionary<string, Action>> dict;
foreach (var kvp1 in dict)
{
foreach (var kvp2 in kvp1.Value)
{
string key1 = kvp1.Key;
string key2 = kvp2.Key;
Action a = kvp2.Value;
}
}
我想你想要的是一个Tuple。。。?你的问题很模糊,但下面是如何使用元组的。
var foo = new Tuple<string, int, int, int, int, int, int>(
"Bar", 7891957, 7781984,
7894862, 7071639, 7322564, 8008278);
我希望这能有所帮助,但万一这不是你需要的。你可以考虑修改你的问题。
也许您应该探索使用Tuple?假设内部字典中只有一个元素,为什么要在字典中有一个字典?
我想(也许)你想要的是这个
假设mainDictionary是您的
Dictionary<string1, Dictionary<string2, Action>>
我们有
foreach(var dictionary in mainDictionary){
foreach(var item in dictionary.Value){
//dictionary.Key = string1
//item.Key = string2
//item.Value = Action
}
}
您可以创建具有多个值的字典,如以下
Dictionary<string, KeyValuePair<string, string>> Multiple_Value_List = new Dictionary<string, KeyValuePair<string, string>>();
并且可以添加值
Multiple_Value_List .Add("Name1", new KeyValuePair<string, string>("category1", "description1"));
Multiple_Value_List.Add("名称2",新KeyValuePair("类别2","描述2"));Multiple_Value_List.Add("Name3",新KeyValuePair("category3","description3"));
使用元组。原因如下。
-
您确实需要分组项目的列表。这种分组是您需求的关键,因此TUPLE提供了这一点。
-
Dictionary可以执行您要查找的内容,但它会有点复杂,因为您必须嵌套数据结构。
这里的目标是为工作使用正确的数据结构,否则你会给代码增加更多的复杂性,这会使调试更加困难,也会使其他人(或你未来的自己)更难阅读和理解。