2016-01-24 3 views
0

Мой вопрос довольно прост. Я хочу взять определенный элемент из C# LinkedList и передать его желаемому типу. Как я могу это сделать? Я пробовал что-то подобное, но это не позволяло мне.Литье LinkedListNode к объекту

A old = (A)head.Next; 

Кстати head является LinkedListNode<A>

Я искал его, но не нашли соответствующий материал еще.

ответ

2

Если head является LinkedListNode<A>, то head.Next также является LinkedListNode<A>. Нет никакого способа, чтобы LinkedListNode<A> мог быть отлит до A, а LinkedListNode - это узел, а не значение узла.

Если вы хотите, чтобы получить значение в узле, то вам нужно позвонить head.Value:

A old = head.Value; 
+0

Спасибо! Итак, для этого случая нет каких-либо актеров? –

+1

Нет общего способа конвертировать общий тип в его общий параметр. С «List » легче видеть. Если 'list' является' List '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''? Нет списка List of int, а не int. Таким образом, по умолчанию для C# этот способ не допускается. Было бы возможно, чтобы «LinkListNode » определял метод конверсии, чтобы кастинг работал, но они этого не сделали. https://msdn.microsoft.com/en-us/library/85w54y0a.aspx – shf301

+0

Спасибо! Это гораздо лучшее объяснение. я понял –

Смежные вопросы