以object[]和object[][]为参数的C#调用方法(params object[][])

标签 c# arrays multidimensional-array parameters

我有一个方法

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/

相关文章:

c# - 使用 CefSharp 上传文件

c# - 是否可以使用 ADO.NET 锁定 oracle 10g 数据库表?

arrays - Excel VBA : Variants in Array Variables

c - 在 C 中随机填充结构类型的二维数组的问题

c# - 如何访问外部 .config 文件?

c# - 如何保证打开同一个网站的新浏览器窗口时Session ID不会过期?

php - 检查一个数组是否可以放入另一个数组

javascript - 更新 Javascript 闭包中的上下文数组

java - 如何切换二维数组中的两个字符串

python /Django : emulating a multidimensional layer on a MySQL database