将列表转换为参数C#
我有以下列表:
var myList = new List<KeyValuePair>();
而这个function:
public void Test(params KeyValuePair[] list)
使用该function时,如何将列表转换为参数? 像那样:
Test(myList);
您方法声明KeyValuePair
声明它将接受一个数组,因此您需要将列表转换为这样的数组
Test(myList.ToArray());
您应该将列表转换为接受为参数的表单。 在这种情况下,将List转换为Array
因此,
var arrayParam = mylist.ToArray(); Test(arrayParam);
鉴于原始问题,我认为值得澄清params
关键字如何运作。 它必须是1D数组的装饰器,并且只允许使用替代语法来调用该函数。
例如,如果我们有一个字符串连接函数:
public string Test(string[] names) { return String.Join(",", names); }
这可以使用
Test(new[] { "Fred", "Wilma", "Pebbles"});
但是包含params
关键字只是允许更友好的查看调用语法:
public string Test(params string[] names) { return String.Join(",", names); }
Test("Fred", "Wilma", "Pebbles");
我不是params
关键字的忠实粉丝,但我确实使用它来使调用代码更具可读性(如本例所示)。
因此,当OP询问“ 如何将列表转换为params? ”时,根本的事实是你没有,因为params不是一种类型,只是一种“语法糖”function来提供替代语法用于传入数组。