gpt4 book ai didi

java - C# IEnumerable 相当于 java Iterator 的 next() 方法?

转载 作者:行者123 更新时间:2023-12-01 22:20:37 26 4
gpt4 key购买 nike

我发现( here )C# 中迭代​​器的一种实现,它模仿 Java 的迭代器方法,但我不太确定如何在我的情况下使用它,或者是否有更简单的选项来重写此方法 C# 的方式。原始java方法:

public RWIterator<T> search (T e){

RWIterator<T> it =null;
RWIterator<T> current = iterator();
RWIterator<T> prev = iterator();
boolean found=false;
while(! found && current.hasNext()){
T el=current.next();
if (el.equals(e)) found = true;
else prev.next();
}
if (found) {
//Iterator<T> tmp = prev;
//System.out.println("searched value is="+tmp.next());
it = prev;
}
return it;
}

RWIterator 扩展了 java Iterator,我无法理解 prev 的用法。我被困在这一点上:

public RWIterator<T> Search(T e)
{

RWIterator<T> it = null;
RWIterator<T> current = Iterator();
RWIterator<T> prev = Iterator();
bool found = false;
while (!found && current.GetEnumerator().MoveNext())
{
T el = current.GetEnumerator().Current;
if (el.Equals(e)) found = true;
else
{
//what should happen with prev.GetEnumerator().Current ?
}
}
if (found)
{
//Iterator<T> tmp = prev;
//System.out.println("searched value is="+tmp.next());
it = prev;
}
return it;
}

最佳答案

您可以使用 GetEnumerator 方法获取对 Enumerator 的引用,然后可以使用 MoveNext 方法继续,并且使用 Current 属性访问您的元素:

var enumerator = getInt().GetEnumerator();
while(enumerator.MoveNext())
{
int n = enumerator.Current;
Console.WriteLine(n);
}

关于java - C# IEnumerable 相当于 java Iterator 的 next() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com