在C#中声明一个KeyValuePair元组

时间:2019-02-28 23:30:38

标签: c# .net tuples keyvaluepair

为了我的代码,我需要一个具有2个组件的元组,这两个组件都是KeyValuePairs。但是,对于我的一生,我什至不知道该如何声明。我可以使用普通字符串

Tuple<string, string> t = new Tuple<string, string>("abc", "123");

但是我需要使用KeyValue Pairs而不是字符串,我已经尝试过类似的方法,但是它拒绝编译说构造函数不能接受2个参数。

Tuple<KeyValuePair<string, string>, KeyValuePair<string,string>> a = 
    new Tuple<KeyValuePair<string, string> ("a", "1"), 
    KeyValuePair<string, string> ("b", "2");

任何指导将不胜感激。如果有帮助,请随时使用:https://dotnetfiddle.net/y2rTlM

2 个答案:

答案 0 :(得分:2)

使用:

Tuple<KeyValuePair<string, string>, KeyValuePair<string, string>> a =
        new Tuple<KeyValuePair<string, string>, KeyValuePair<string, string>>(
            new KeyValuePair<string, string>("a", "1"),
            new KeyValuePair<string, string>("b", "2")
        );

答案 1 :(得分:0)

或者,短一点:

using KVPS = System.Collections.Generic.KeyValuePair<string, string>;

namespace Test 
{
    class Program
    {
        static void Main(string[] args)
        {
            Tuple<KVPS, KVPS> a =
                Tuple.Create(
                    new KVPS("a", "1"),
                    new KVPS("b", "2")
                    );
            Console.WriteLine($"{a.Item1.Key} {a.Item1.Value} : {a.Item2.Key} {a.Item2.Value}");
        }
    }
}   

如果您有很多元组和类似的元组,这可能会很有用。