数组有多少元素不为空?

Posted

技术标签:

【中文标题】数组有多少元素不为空?【英文标题】:How many elements of array are not null? 【发布时间】:2011-01-24 09:44:57 【问题描述】:

一个数组是由假定的元素定义的,比如我有像 String[] strArray = new String[50]; 这样的数组。

现在从 50 个元素中只分配了一些元素,其余元素为空,然后我想要分配元素的数量。

像这里一样只分配了 30 个元素,然后我想要那个数字。

【问题讨论】:

【参考方案1】:

你可以使用Enumerable.Count:

string[] strArray = new string[50];
...
int result = strArray.Count(s => s != null);

此extension method 迭代数组并计算指定谓词适用的元素数。

【讨论】:

代码使用 LINQ。您需要在源文件顶部添加 using System.Linq; 以使 LINQ 扩展方法可见。 在 for 循环中每次检查 strArray 的每个元素是否为 null 是否一样? 要“正确拟合”数组以仅包含那些分配的元素,我发现 this 很有帮助。【参考方案2】:

使用LINQ你可以试试

int count = strArray.Count(x => x != null);

【讨论】:

你打败了我的 5.37 秒 :) 但是 OP 想要空元素还是非空元素?【参考方案3】:

使用 LINQ:

int i = (from s in strArray where !string.IsNullOrEmpty(s) select s).Count();

【讨论】:

嗯嗯谢谢?!?!其他人的答案比我更简洁。

以上是关于数组有多少元素不为空?的主要内容,如果未能解决你的问题,请参考以下文章

查找数组字段不为空的 MongoDB 记录

查找数组字段不为空的 MongoDB 记录

查找数组字段不为空的 MongoDB 记录

查找数组字段不为空的 MongoDB 记录

查找数组字段不为空的 MongoDB 记录

Java中如何判断数组元素是不是为空?