C#-如何使用数组数组作为";的输入;参数化;方法?

C#-如何使用数组数组作为";的输入;参数化;方法?,c#,arrays,methods,parameters,C#,Arrays,Methods,Parameters,我想创建一个方法,该方法接受字符串数组的字符串数组类型的“参数化”输入对象。比如: public void MyMethod(params string[][] input) { //...do stuff } 我按如下方式调用此方法: MyMethod({"arry1-elem1","arry1-elem2"}, {"arry2-elem1","arry2-elem2"}, {"arry3-elem1","arry3-elem2"}); 但是,当我执行此操作时,会出现以下错误: 无效

我想创建一个方法,该方法接受字符串数组的字符串数组类型的“参数化”输入对象。比如:

public void MyMethod(params string[][] input)
{
   //...do stuff
}
我按如下方式调用此方法:

MyMethod({"arry1-elem1","arry1-elem2"}, {"arry2-elem1","arry2-elem2"}, {"arry3-elem1","arry3-elem2"});
但是,当我执行此操作时,会出现以下错误:

无效的表达式项“{”

我在这里做错了什么。不可能输入隐式类型的数组作为输入吗

MyMethod(new string[]{"arry1-elem1","arry1-elem2"}, new string[]{"arry2-elem1","arry2-elem2"}, new string[]{"arry3-elem1","arry3-elem2"});

当您试图传递它们时,您没有声明它们的类型。

更好的是,您不必说
string

MyMethod(new[]{"a","b"}, new[]{"c","d"});

另外,
string
是多余的。你可以删除它。只要
new[]
就足够了。没错,但我希望它一眼就能看出它是什么。如果你想省去它,请随意,我的偏好是^^接下来的问题,有没有办法强制将嵌套数组限制为二维?例如,
public void MyMethod(params string[][2]input)
不特别,如果有更多或更少的值,您可以在方法中添加验证以检查和抛出(可能是ArgumentException),或者您可以创建一个只能用两个值实例化的类。实际上,您只有两个选项。