有没有办法将 T
的单个对象转换为 T[]
将单个 string
传递给需要 string[]
的函数时,将使用它的示例
例子
void ExistingMethod(string[] sa);
void main()
{
string s;
ExistingMethod(s); //<= problem is there a syntax that allows this type of cast?
}
对这样的解决方案不感兴趣
string [] singleElementArray = new string[1];
singleElementArray[0] = s;
ExistingMethod(singleElementArray)
我正在查看 C# 是否允许这种类型的转换。
我以为我看到了一种 Java 允许它的方式,只需像这样用 [] 包装 ([s])
即可。 C#有这种语法吗?
注意,对创建 1 的数组并分配它不感兴趣......
最佳答案
更改 foo(string[] sa)
至 foo(params string[] sa)
.
params
允许您放置一个采用数组参数参数数组的数组,如下所示:foo(foo, bar, baz);
而不是 foo(new[]{foo, bar, baz});
或者你可以做 .Arr<T>(this T obj)
函数,返回 T[]
.像这样:
public static T[] Arr<T>(this T obj)
{
return new[]{ obj };
}
然后像这样使用它:
foo(obj.Arr());
关于c# - 是否可以将元素直接转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14781179/