Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 空数组上的c“索引超出数组边界”_C# - Fatal编程技术网

C# 空数组上的c“索引超出数组边界”

C# 空数组上的c“索引超出数组边界”,c#,C#,我犯了一个错误 '索引超出了数组的边界 在这一行上,字符串Open=array[0];当数组为空时 我使用if语句来查看当数组为空时它是否可以被旁路 然而,为什么我仍然得到这个错误?我怎样才能绕过/修复它 if (array != null || array.Length != 0) { int c = array.Count(); string Open = array[0].ToS

我犯了一个错误

'索引超出了数组的边界

在这一行上,字符串Open=array[0];当数组为空时

我使用if语句来查看当数组为空时它是否可以被旁路

然而,为什么我仍然得到这个错误?我怎样才能绕过/修复它

if (array != null || array.Length != 0)
                {
                    int c = array.Count();
                    string Open = array[0].ToString(); <--- ERROR
                }
这一定是

if (array != null && array.Length != 0)
这一定是

if (array != null && array.Length != 0)
改变

if (array != null || array.Length != 0)

改变

if (array != null || array.Length != 0)


在if语句中使用了逻辑OR运算符。您应该使用AND运算符&

如果两个条件中的任何一个为true,OR将计算为true,所以只要数组不为null,if语句就会运行

应该是:

if (array != null && array.Length != 0)

在if语句中使用了逻辑OR运算符。您应该使用AND运算符&

如果两个条件中的任何一个为true,OR将计算为true,所以只要数组不为null,if语句就会运行

应该是:

if (array != null && array.Length != 0)

可以检查空数组的长度。但是,如果您尝试在空引用上执行此操作,您将得到一个异常。这里需要检查null和数组长度的&&条件

if (array != null && array.Length != 0)

可以检查空数组的长度。但是,如果您尝试在空引用上执行此操作,您将得到一个异常。这里需要检查null和数组长度的&&条件

if (array != null && array.Length != 0)
IndexOutOfRangeException是仅在运行时引发的运行时异常

根据您的问题,似乎您应该像其他人所说的那样同时使用null和length检查

if (array != null && array.Length != 0)
但因为您并没有将任何答案标记为已接受,所以我必须告诉您将代码放入下面的try-and-catch块中

  try
  {
      if (array != null && array.Length != 0)
      {
         int c = array.Count();
         string Open = array[0].ToString(); <--- ERROR
      }
  }
  catch(Exception ex)
  {
      // Put breakpoint here and see inner exception by hovering your mouse cursor over ex.
  }
您将在内部异常中获得有关此类问题的更多详细信息。

IndexOutOfRangeException是仅在运行时引发的运行时异常

根据您的问题,似乎您应该像其他人所说的那样同时使用null和length检查

if (array != null && array.Length != 0)
但因为您并没有将任何答案标记为已接受,所以我必须告诉您将代码放入下面的try-and-catch块中

  try
  {
      if (array != null && array.Length != 0)
      {
         int c = array.Count();
         string Open = array[0].ToString(); <--- ERROR
      }
  }
  catch(Exception ex)
  {
      // Put breakpoint here and see inner exception by hovering your mouse cursor over ex.
  }

您将在“内部异常”中获得有关此类问题的更多详细信息。

您能给我们展示一下您的阵列吗?您能给我们展示一下您的阵列吗