具有单个键的两个值的多维数组

时间:2019-07-13 21:27:52

标签: c# arrays multidimensional-array

我需要创建一个数组,单个键可以有两个值。 我想将数组格式化为这样:

array = 
{
    "key" => {"value1", "value2"}
}

我已经尝试过像这样格式化数组:

public string[,,] array = new string[,,] 
    {
        {
            { "1", "5", "6" }, 
            { "2", "5", "7" }
        },

        {
            { "3", "1", "2" }, 
            { "4", "1", "3" }
        }
    };

但是我只能得到16个值进行循环,我想从我输入的键中访问它们。

如何以某种方式创建数组以获取所需的输出?

3 个答案:

答案 0 :(得分:2)

最简单的操作是使用带有字符串 key Dictionary和值为值的Value Tuple。本质上,字典具有快速的 key 查找,而命名值元组在访问密钥时为您提供一些理智

// Instantiated the dictionary
var funky = new Dictionary<string,(int Value1, int Value2)>();

// add some values
funky.Add("mykey",(1,5));
funky.Add("anotherKey",(4,5));

// access the values
Console.WriteLine(funky["mykey"].Value1);
Console.WriteLine(funky["anotherKey"].Value2);

答案 1 :(得分:1)

您不是要查找数组。您可能正在搜索字典。因此,MS这样说是关于字典的:https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.8

代表键和值的集合。

因此,您需要使用给定的键访问一些值。就是这个。 示例:

Dictionary<string, string[]> xs = new Dictionary<string, string[]>()
            {
                {"key1", new string[] {"value1","value1.1"} },
                {"key2", new string[] {"value2","value2.2"} },
            };

xs["key3"] = new string[] { "test42" };

答案 2 :(得分:0)

最好的方法是创建一个字典,在其中您可以使用唯一键访问值,并且该值可以是您想要的任何类型。 在这种情况下,它是带有字符串键和字符串列表值的字典

var keyValues = new Dictinary<string, List<string>>();
keyValues.Add("key1", new List()
    {
        "Value1",
        "Value2"
    });