0

私は方法を持っています:

public void MyMethod(params KeyValuePair<string, string>[] properties);

私は次のように呼び出します:

MyMethod(
    new KeyValuePair("Name","Jack"), 
    new KeyValuePair("City", "New York"), 
    new KeyValuePair("Gender", "Male"), 
);

ただし、メソッドを呼び出すには、次のようなよりきれいな構文を使用したいと思います。

MyMethod({"Name","Jack"}, {"City","New York"}, {"Gender","Male"});

私がこれに最も近いのは、メソッドのシグネチャを変更して、メソッドの引数として辞書を受け入れ、次のように呼び出すことです。

MyMethod(new Dictionary<string,string>()
{
    {"Name", "Jack"},
    {"City", "New York"},
    {"Gender", "Male"},
};

他の選択肢はありますか?

4

2 に答える 2

0

このように、文字列だけをパラメーターとして受け入れてから、動的に辞書を埋めることができます。

public void MyMethod(params string[] properties) 
{
    var pairs = new Dictionary<string, string>();

    for(int i = 0; i < properties.length - 1; i += 2) 
    {
        pairs.Add(properties[i], properties[i + 1]);
    }
}

MyMethod("Name", "Jack", "City", "New York", "Gender", "Male");
于 2013-06-09T07:59:14.023 に答える