Вы можете попробовать params
с зубчатым массивом для этого
public static void MyMethod(params string[][] s1)
{
}
и немного обновить вызов метода
MyMethod(new[] { "a", "b" }, new[] { "s", "m" });
MyMethod(new[] { "a", "p" }, new[] { "u" }, new[] { "v", "p" }, new[] { "e" });
MyMethod(new[] { "a", "b", "b", "d" });
Пожалуйста, имейте в виду, что в последней строке вы передаете только одномерный массив, и вы должны правильно управлять им внутри метода
Однако, он не выглядит достаточно читабельным, IMO. Лучше иметь несколько перегрузок с разными сигнатурами.
public static void MyMethod(params string[][] s1)
{
}
public static void MyMethod(params string[] s1)
{
}
Тогда последний вызов метода можно использовать как MyMethod("a", "b", "b", "d");
, без объявления массива.
К сожалению, вы не можете избежать использования объявление массива с оператором new
, типизированное значение new
выражение появится в следующей версии C#