如何在c#中替换链表中的元素?而在java中,可以使用set或add方法来替换列表中的特定元素…我找不到如何在c#中替换它
将值2替换为3:
LinkedList<int> ll;
ll.Find(2).Value = 3;
链表节点没有Replace
方法。要替换一个节点,您必须:
- 查找要替换的节点
- 在该节点(
AddBefore
)之前插入一个新节点 - 删除原节点
你也可以用AddAfter
。结果是一样的
使用LinkedList<T>
,您可以处理LinkedListNode<T>
项。LinkedListNode<T>
有一个Value
属性,你可以使用它来获取或设置一个特定的项。
与c#不同,Java没有在语言中集成属性的概念。在Java中,可以通过添加手工制作的set_Property和get_Property方法来创建属性。c#属性可以像字段一样被访问。
Java:obj.set_MyProperty(123);
x = obj.get_MyProperty();
c#: obj.MyProperty = 123;
x = obj.MyProperty;
然而在内部,c#也调用getter和setter方法。你可以在c#中声明这样一个属性:
private int _myProperty;
public int MyProperty {
get { return _myProperty; }
set { _myProperty = value; }
}
在这种特殊情况下,当不涉及其他逻辑时,您可以使用自动实现的属性:
public int MyProperty { get; set; }
在链表中,您可以像这样更改列表的第一个元素:
myLinkedList.Fist.Value = your new value;