不需要迭代,如何从IEnumerable<T>中计算项数?

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

假设我想在迭代过程中编写类似于处理 #n of #m 的内容。

在我的主要迭代之前,有没有一种方法可以找出 m 的值?

希望我表达清楚了。

22个回答

-2

我使用IEnum<string>.ToArray<string>().Length,它可以正常工作。


这应该很好用。IEnumerator<Object>.ToArray<Object>.Length - warrior
1
你为什么要这样做,而不是使用已经在 Daniel 的高赞回答中三年前就提供的更简洁、更快速的解决方案,即 "IEnum<string>.Count();"? - ToolmakerSteve
你是对的。不知怎么的,我忽略了丹尼尔的答案,可能是因为他引用了实现代码,我以为他实现了一个扩展方法,而我正在寻找一种更简洁的解决方案。 - Oliver Kötter
处理我错误的回答,最被接受的方式是什么?我应该删除它吗? - Oliver Kötter

-6

如果我有一个字符串列表,我会使用以下代码:

((IList<string>)Table).Count

希望底层连接可以转换为“ IList<string>”,然后......(不,我不是在谈论“string”部分,只是并非所有的“IEnumerable<T>”都由实现“IList<T>”的类型支持) - ProgrammingLlama

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接