我使用的是.NET 3.5。 Array类的哪种方法最适合在数组中返回空索引(然后可以用于填充)。 Single/SingleOrDefault()
方法看起来不错,但如果有多个空插槽,我希望第一个具有最低索引。
我目前的代码结果是:
var x = from s in BaseArray
where s == null
select s;
但未经测试且不确定其行为方式(在空数组中会得到多个结果)。
由于
答案 0 :(得分:3)
var result = list.Where(i => IsItemEmpty(i)).FirstOrDefault();
这个简单的linq语句将从列表中返回第一个“空”项。当然,我已经抽象出如何确定项目是否为空,因为我不知道你的数据结构是什么样的,但是应该这样做。
答案 1 :(得分:0)
我已经实现了这种扩展方法。看看它是否有用:
public static int? FirstEmptyIndex<T>(this IEnumerable<T> src)
{
using (IEnumerator<T> e = src.GetEnumerator())
{
int index = 0;
while (e.MoveNext())
{
if (e.Current == null)
return index;
else
index++;
}
}
return null;
}