一尘不染

从IEnumerable计数项目 没有迭代?

c#

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}

假设我要迭代这些并编写类似#m的#n处理。

有没有一种方法可以在我的主迭代之前不进行迭代就找出m的值?

我希望我能说清楚。


阅读 158

收藏
2020-05-19

共1个答案

一尘不染

IEnumerable不支持这一点。这是设计使然。IEnumerable使用惰性评估来获取您需要的元素,然后再使用它们。

如果您想在不迭代的情况下知道项目的数量,可以使用ICollection<T>,它具有一个Count属性。

2020-05-19