C#,如何判断数组的第一个元素是否为空,当数组可能没有元素时

本文关键字:数组 元素 是否 第一个 何判断 判断 | 更新日期: 2023-09-27 18:33:36

此代码可能会引发空指针异常。

if (myArray[0] != null)
{
    //Do Something
}

如何测试以确保有一个元素@索引0?当数组为空时不会引发异常。

C#,如何判断数组的第一个元素是否为空,当数组可能没有元素时

根据需要检查的内容,这些条件的某种组合:

if (myArray != null && myArray.Length > 0 && myArray[0] != null)
{
    //Do Something
}

我要对蒂姆的回答做一个小改动是:

if (myArray != null && myArray.Any() && myArray[0] != null) 
{ 
    //Do Something 
} 

.任何检查以查看是否至少有 1,而无需遍历整个集合。此外,此版本适用于任何IList-implemtor。

我知道可能有 的 LINQ/IEnumerable 版本。IsNullOrEmpty在某个未来的.NET版本中,这将非常方便。哎呀,你可以自己实现它作为扩展方法!

public static class MyExtensions
{
    public static bool IsNullOrEmpty<T>(this IEnumerable<T> source)
    {
        return (source == null || !source.Any());
    }
}

然后你的测试变成

if (!myArray.IsNullOrEmpty() && myArray[0] != null)
{
    // ...
}

首先,您需要检查 myArray 是否为空。如果不是,请检查它的元素计数:

if (myArray != null && myArray.Length > 0)
{
   // myArray has at least one element
}

如果第一个条件为 false,则不会检查第二个条件,因此当 myArray 为 null 时,不会抛出异常。