从数组中获取具有最低索引的空槽

时间:2009-12-22 15:16:55

标签: c# .net linq arrays

我使用的是.NET 3.5。 Array类的哪种方法最适合在数组中返回空索引(然后可以用于填充)。 Single/SingleOrDefault()方法看起来不错,但如果有多个空插槽,我希望第一个具有最低索引。

编辑:循环这很容易,但我正在寻找在LINQ中执行此操作的方法。

我目前的代码结果是:

              var x = from s in BaseArray
                    where s == null
                    select s;

但未经测试且不确定其行为方式(在空数组中会得到多个结果)。

由于

2 个答案:

答案 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;
    }