从字典中获取3个参数<;字符串,字典<;字符串操作>>;

本文关键字:字符串 lt gt 字典 操作 获取 3个 参数 | 更新日期: 2023-09-27 18:26:58

我有以下代码,我需要使用foreach的3个参数:

Dictionary<string, Dictionary<string, Action>>

我尝试过使用DictionaryEntryKeyValuePair,但它们一直返回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);
                        }
                    }

从字典中获取3个参数<;字符串,字典<;字符串操作>>;

我同意,您应该尝试在这里使用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"));

使用元组。原因如下。

  1. 您确实需要分组项目的列表。这种分组是您需求的关键,因此TUPLE提供了这一点。

  2. Dictionary可以执行您要查找的内容,但它会有点复杂,因为您必须嵌套数据结构。

这里的目标是为工作使用正确的数据结构,否则你会给代码增加更多的复杂性,这会使调试更加困难,也会使其他人(或你未来的自己)更难阅读和理解。