我有一个方法
public void method(params object[][] arg)
但是在我调用方法的地方,我有 object[] 和 object[][]:
object[] var1 = new object[5];
object[][] var2 = new object[8][5];
method(var1, var2); (I´d like this to be method(var1, var2[0], var2[1], var2[2],...)
但在方法内部,arg 的长度为 2:
arg[0] = var1
arg[1] = var2
但我想要 arg 作为长度为 9 的数组:
arg[0] = var1
arg[1] = var2[0];
arg[2] = var2[1];
...
如何调用方法?
最佳答案
这听起来像你想要的:
object[][] args = new[] { var1 }.Concat(var2).ToArray();
method(args);
C# 的“正常”参数数组处理不会进行任何展平:您或者使用已经是正确类型的单个参数调用它,或者您用元素类型的一系列参数调用它。你不能混搭。
关于以object[]和object[][]为参数的C#调用方法(params object[][]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15089362/