发送集合';s项作为params[]vars传递给某个方法

本文关键字:vars 方法 params 集合 | 更新日期: 2023-09-27 18:25:35

我有一个方法foo(params[] items)

我有一个集合(List、Set…)我想将其项目作为项目发送到foo

我可以使用什么语法?

发送集合';s项作为params[]vars传递给某个方法

如果您只将数组作为参数传递,它将作为项传递。所以只需使用Collection.ToArray。事实上,当您使用params时,有一些好的东西需要了解。如果您传递null并打算将其作为第一个也是唯一一个参数传递,那么它将被用作null数组。所以有了这样的代码:

SomeMethod(null);
public void SomeMethod(params object[] items)
{
...
}

项将为null,而不是长度为1的array和作为第一个元素的null

该方法签名无效,因此无法编译。您仍然需要指定项目的类型,例如:

foo(params string[] items) { }

那么你可以简单地称之为:

foo("one", "two", "three");
foo(new string { "one", "two", "three"});
foo(myCollection.ToArray());

或者,

foo(myArrayOfStrings);

其中myArrayOfStrings是字符串的数组。

您还应该确保在迭代项目之前检查一个null参数,因为

foo(null);

有效。