Почему MSDN предлагает добавить и удалить узел связанного списка, чтобы изменить его значение? - PullRequest
0 голосов
/ 20 мая 2019

Я занимаюсь со связанными списками и заметил, что он предлагает удалить и добавить узел, чтобы обновить его значение. Пример ниже взят из документации MSDN в связанных списках:

string[] words = { "the", "fox", "jumps", "over", "the", "dog" };
LinkedList<string> sentence = new LinkedList<string>(words);
sentence.RemoveLast();
sentence.AddLast("yesterday");

Почему бы просто не сделать что-то вроде этого:

sentence.Last.Value = "yesterday"

Достигается тот же результат. Или, если местоположение dog неизвестно:

sentence.Find("dog").Value = "yesterday";

Я не вижу преимуществ в том, чтобы полностью удалить, а затем прочитать значение?

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Почему бы просто не сделать что-то вроде этого: sentence.Last.Value = "yesterday";

Поскольку эта конкретная страница хотела продемонстрировать логику добавления и удаления.

1 голос
/ 20 мая 2019

Я имею в виду 2 преимущества.

  1. Когда вы вызываете RemoveLast в пустом списке, он сообщает вам LinkedList пуст. , если вы используете Last.Value, он выдаст NullReferenceException, что менее читабельно.

  2. LinkedListNode - это класс, который означает, что если вы сохранили ссылку на последний узел, изменение Last.Value также изменит его значение, обычно это поведение является неожиданным.

    var last = sentence.Last;
    ....
    ....
    sentence.Last.Value = "yesterday";
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...