ArrayList list = new ArrayList();
for (int i = 0; i < list.Count; i++)
{
//If list[i] is empty?
}
是否可以检查位置[i]
上的值是否为空?如果是这样,怎么解决?
答案 0 :(得分:1)
列表中没有“空虚”的概念。如果您可以迭代到列表中的元素,那么该元素确实存在,并且某些值。现在,该值可以采用不同的形式在语义上意味着它是“空的”,但这实际上取决于您对“空白”的定义,以及您之前分配的值以使其为空 - 因为只有在您指定一些值时才存在列表元素它。
可以解释为空的常见值是null
,这是对任何内容的引用。这是所有引用类型的默认值,因此将其用作“空”是有意义的。但其他价值观可以在这里使用。
一般情况下,您应该考虑只删除这些元素,而不是在列表中添加空值。这样,当迭代你的列表时,你只有非空元素,并且你不需要在任何地方添加一些检查来处理你的特殊空值。
答案 1 :(得分:1)
for (int i = 0; i < list.Count; i++)
{
//If list[i] is empty?
}
只会循环数组中的元素。您必须通过list.Add(somevalue)或list [i] == somevalue为列表赋值。
如果未分配,则根本不存在。因此,列表不能具有“空”的元素,因为如果未设置该元素,则该元素没有键或值。像其他人一样回答它可能是空的。但是null是一个值。
顺便说一句,我更喜欢像这样使用foreach循环列表
foreach(var item in list) {
// do something here.
}
这样你就不需要了
var item = list[i];
将值转换为变量。因为它已经由循环设置
答案 2 :(得分:0)
这取决于您的ArrayList包含的内容。你的意思是&#34;空&#34;。但它不应该太难实现。 以下是一些建议:
for(int i = 0; i<list.Count; i++){
if(list[i] == null){ //for objects
//do something
}
if(list[i].equals("")){ //for empty string
//do something
}
if(list[i].exists){ //for objects you created yourselfs whit a boolean exists-function
//do something
}
}
可能会出现一些语法错误,但您明白了! :)