List>

本文关键字:string 语法 KeyValuePair List 更好 | 更新日期: 2023-09-27 18:17:48

我有一个方法:

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"},
};

List<KeyValuePair<string的更好语法,string>>

你可以只接受字符串作为参数,然后动态地填充字典,就像这样。

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");

另一个选择是使用二维数组

static void PrintArray(int[,] arr)
PrintArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });

但我更喜欢字典方法