目前我正在这样做
public int[][] SomeMethod()
{
if (SomeCondition)
{
var result = new int[0][];
result[0] = new int[0];
return result;
}
// Other code,
}
现在在这里我只想返回空的锯齿状数组[0] [0]。是否可以将三行减少为一行。我希望实现这样的目标
public int[][] SomeMethod()
{
if (SomeCondition)
{
return new int[0][0];
}
// Other code,
}
有可能吗?
答案 0 :(得分:1)
在一般情况下,您可以让编译器为您计算元素:
public int[][] JaggedInts()
{
return new int[][] { new[] { 1, 2, 3 }, new[] { 4, 5, 6 }, new[] { 7, 8, 9, 10 } };
}
或者,如果您想要它非常紧凑,请使用表达式主体:
public int[][] JaggedInts() => new int[][] { new[] { 1, 2, 3 }, new[] { 4, 5, 6 }, new[] { 7, 8, 9, 10 } };
由于你要求一个空的锯齿状数组,你已经拥有了它:
var result = new int[0][];
你问题的下一行会抛出一个运行时异常,因为[0]是数组中的第一个元素,它必须是1个或更多个元素的长度;
result[0] = new int[0]; // thows IndexOutOfRangeException: Index was outside the bounds of the array.
以下是我认为您只需要一行的内容:
public int[][] Empty() => new int[0][];
答案 1 :(得分:0)
试试这个示例页面。希望有所帮助
答案 2 :(得分:0)
答案 3 :(得分:0)
通过返回jagged数组的值,它给你一些模糊的结果,如果你想返回一些特定的jagged数组索引的特定值,你可以通过将它们赋值给变量来返回
public static int aaa()
{
int[][] a = new int[2][] { new int[] { 1, 2 }, new int[] { 3, 4 } };
int abbb=a[0][0];
Console.WriteLine(a[0][0]);
return abbb;
}
以下代码将返回1 becoz这是锯齿状数组的第一个元素