c# - 通过 LinkedList.Enumerator 替换 LinkedList 元素值

标签 c# java

我意识到我无法通过 LinkedList.Enumerator 替换值。

例如,我尝试将以下 Java 代码移植到 C#:

Java代码:

ListIterator<Double> itr1 = linkedList1.listIterator();
ListIterator<Double> itr2 = linkedList2.listIterator();
while(itr1.hasNext() && itr2.hasNext()){
    Double d = itr1.next() + itr2.next();
    itr1.set(d);
}

C#代码:

LinkedList<Double>.Enumerator itr1 = linkedList1.GetEnumerator();            
LinkedList<Double>.Enumerator itr2 = linkedList2.GetEnumerator();

 while(itr1.MoveNext() && itr2.MoveNext()){                
    Double d = itr1.Current + itr2.Current;
    // Opps. Compilation error!
    itr1.Current = d;
}

我可以使用任何其他技术吗?

最佳答案

C# 的 LinkedList 枚举器枚举,而不是节点

如果你想像在 Java 版本中那样修改节点,我认为你必须手动“枚举”节点:

LinkedListNode<Double> nod1 = linkedList1.First;
LinkedListNode<Double> nod2 = linkedList2.First;
while (nod1 != null && nod2 != null)
{
    Double d = nod1.Value + nod2.Value;              
    nod1.Value = d;
    nod1 = nod1.Next;
    nod2 = nod2.Next;
} 

关于c# - 通过 LinkedList.Enumerator 替换 LinkedList 元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12778973/

相关文章:

c# - 子文件夹应用程序中的 Web api 路由

c# - 将焦点设置为表单

c# - 找到的程序集的 list 定义与程序集引用 C# Dll hell 不匹配

java - 从部署的 jar 访问 web-inf

java - ffmpeg 在 java 退出之前不会启动

c# - 如何在c#中关闭xmldocument

c# - 使用 HttpWebRequest 从 404 错误中检索内容

Java 在窗口边界下绘制图形

java - 如何将特定时间转换为毫秒

java - 在不同的类中使用 ActionListener