如何在不循环的情况下找出数组是否为空?!
有什么方法或其他吗?
我的意思是,在某些代码中这样:
string[] names = new string[5];
names[0] = "Scott";
names[1] = "jack";
names[2] = null;
names[3] = "Jones";
names[4] = "Mesut";
// or
int[] nums = new int[4];
nums[0] = 1;
// nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
或类似的代码:
using System;
class Example
{
static void Main()
{
int size = 10;
int counter;
string[] str = new string[size];
for (counter = 0; counter < size; counter++)
{
str[counter] = "A" + counter;
}
str[3] = null;
if (counter == size)
Console.WriteLine("Our array is full!");
if(counter < size)
Console.WriteLine("Our array is not full");
for (int i = 0; i < size; i++)
{
Console.WriteLine(str[i]);
}
}
}
还有什么其他方法可以检测空数组而不进行循环?
答案 0 :(得分:5)
数组只包含许多元素。由于每个元素恰好包含默认值(0,null或其他),因此没有数组“空”的概念。
如果你想要一个动态大小的集合,你应该使用类似List<T>
而不是数组的东西。
如果要检测集合中的任何元素(无论是列表,数组还是其他任何元素)是否为非默认值, 通过循环执行此操作。 (您不必在源代码中循环,但在某处会涉及循环...)
答案 1 :(得分:2)
没有其他方法可以循环,甚至LINQ也会自动循环。 而是使用列表&lt;&gt;并检查 if(listName!= null&amp;&amp; listName.Length!= 0)
希望有所帮助:)
答案 2 :(得分:0)
您可以使用LINQ来检查您可以执行的数组中是否有任何元素为空:
var hasNulls = myArray.Any( a => a == null );
或者,如果您想选择具有值的那些:
var notNulls = myArray.Where( a => a != null );