c# - 如何检查数组是否包含任何项目或是否完全为空?

标签 c# arrays

如果我定义一个整数数组:

int[] a = new int[13];

而且我没有向其中插入任何项,我怎么知道数组 a 是否包含任何项或完全为空? 我是否必须遍历所有 a.Length 索引? 在列表中

List<int> b = new List<int>();

如果我检查:

if(b.Count == 0)
{
    // The list does not contain any items.
}

是否有等效的方法来检查数组? 我在互联网上发现检查数组是否为 null 或为空。 就我而言,我确定该数组不为空。 我只想知道它是否包含任何项目。 我不关心数组中的哪个位置,也不关心具体是哪个项目。 非常感谢您。

最佳答案

int[] a = new int[13]; // [0,0,0,0,0,0,0,0,0,0,0,0,0]

分配一个包含 13 个项目的数组。每一项的值为0default(int)

所以你必须检查

bool isEmpty =  a.All(x => x == default(int));

如果 0 是数组中的有效值,则应使用可空类型:

int?[] a = new int?[13]; // [null,null,null,null,null,null,null,null,null,null,null,null,null]
bool isEmpty =  a.All(x => !x.HasValue);

关于c# - 如何检查数组是否包含任何项目或是否完全为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44405411/

相关文章:

c# - 如何处理 WPF 3D 中的漫反射 Material 透明度?

c# - 模棱两可的调用匹配困惑

python - 计算多个文件的平均值

将一个整数结构转换为一个整数数组

javascript - JavaScript 中多个数组的笛卡尔积

c - 用空格迭代字符串

c# - MonoTouch 不支持在设备上运行时打开 Web 服务连接的 OpenAsync 方法(在模拟器上运行)

c# - .Net 脚本引擎 (C#) - .Net 语言是否有某种 "header file"或 "dll references file"?

c# - C#中的序列化

javascript - 如何从数组中删除空对象?