Как я могу получить n-й элемент экземпляра LinkedList? Есть ли встроенный способ, или мне может потребоваться ввести мою собственную реализацию? Например, метод расширения?
// This is 0-based of course
var value = linkedList.ElementAt(n);
Не забывайте, что это операция O (n), потому что LinkedList<T> не обеспечивает более эффективный способ доступа к элементу по индексу. Если вам нужно делать это регулярно, это предполагает, что вы не должны использовать связанный список для начала.
Ответ 2
Вы можете использовать метод расширенного расширения ElementAt(). Причина, по которой LinkedList не поддерживает случайный доступ изначально, заключается в том, что это довольно неэффективная операция для структуры данных. Если вы собираетесь делать это часто, вам следует подумать об использовании более подходящей структуры данных.
Ответ 3
Вы можете сделать это с помощью LINQ, как в list.ElementAt(n) или list.Skip(n - 1).First(), но если вы обнаружите, что вы делаете индексированный доступ в связанный список, вы, вероятно, что-то делаете неправильно (связанные списки не поддерживают эту операцию). Возможно, более подходящей будет структура данных?
Ответ 4
Мне нужно было получить второй элемент моего списка (чтобы обновить значение по 1-му элементу на основе второго)
Предполагая, что вы предпринимаете необходимые шаги, чтобы убедиться, что у вас есть два элемента, вы можете просто сделать это: