【发布时间】:2014-08-11 15:24:05
【问题描述】:
我正在处理一个数组,我想在其中添加一些值。在某些情况下,因为只需要一次计算就可以完成,它会要求数组之外的索引。
有没有办法说,'如果索引在数组之外,假设值是 0'?
有点像这样:
try
{
grid[x,y] = grid[x-1,y] + grid[x-1,y-1];
//This is simplified
x++;
}
catch (IndexOutOfRangeException)
{
grid[x - 1, y - 1] = 0;
}
【问题讨论】:
-
数组是固定大小的,所以希望您不必对合法索引进行猜测。执行检查并根据需要对索引进行调整比捕获异常要好得多。
-
查找三元运算符!喜欢
grid[x <= legalSize? x : 0] -
对于一维数组,您可以简单地使用
ElementAtOrDefault,它已经返回了您想要的值。 -
@TaW 应该是
x < legalSize,你也可以加0 <= x。
标签: c# arrays indexoutofrangeexception