Как заменить элемент в LinkedList? - PullRequest
4 голосов
/ 13 декабря 2011

Как заменить элемент в связанном списке в C #? Хотя в Java можно использовать метод set или add для замены определенного элемента в списке ... Я не могу найти, как мне заменить его в C #.

Ответы [ 3 ]

13 голосов
/ 13 декабря 2011

Заменить значение 2 на 3:

LinkedList<int> ll;
ll.Find(2).Value = 3;
7 голосов
/ 13 декабря 2011

Нет метода Replace для узла связанного списка.Чтобы заменить узел, вам необходимо:

  1. Найти узел, который вы хотите заменить.
  2. Вставить новый узел перед этим узлом (AddBefore)
  3. Удалите исходный узел.

Вы также можете использовать AddAfter.Результат будет таким же.

2 голосов
/ 13 декабря 2011

С 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...