4

Java 中的 nextElement() 等价物是什么?

我有以下代码:

IEnumerable<String> e = (IEnumerable<String>)request
                                        .Params;

while (e.Count() > 1)
{
 // 
 //String name = e.nextElement();
String name = e. // what method?
}
4

3 回答 3

9

您应该使用foreach循环:

foreach (string name in request.Params)
{
    // Do something for each name
}

如果您真的想使用原始可枚举,那么您可以调用它的GetEnumerator()方法:

using (IEnumerator<string> enumerator = request.Params.GetEnumerator())
{
    while (enumerator.MoveNext())
    {
        string name = enumerator.Current;

        // Do something for each name
    }
}

但是,foreach 语法要清晰得多。用那个。

于 2013-06-15T15:16:03.637 回答
2
var enumerator = e.GetEnumerator();
while  (enumerator.MoveNext()) {
    var name = enumerator.Current;
}
于 2013-06-15T15:18:17.810 回答
0

你要找的是IEnumerator.MoveNext()方法。从一个IEnumerable,你必须先调用GetEnumerator()方法来获取一个IEnumerator。请注意,IEnumerator接口是IDisposable指,您需要在using子句中使用它。

正如其他人所建议的那样,您可能更喜欢使用foreach循环。

于 2013-06-15T15:21:13.553 回答