2016-01-24 77 views
0

我的问题很简单。我想从C#LinkedList中获取某个元素并将其转换为所需的类型。我该如何执行它?我尝试过这样的事情,但它不允许我。将LinkedListNode投射到对象

A old = (A)head.Next; 

顺便说headLinkedListNode<A>

我已搜查,但没有发现相关的材料呢。

回答

2

如果headLinkedListNode<A>,那么head.Next也是LinkedListNode<A>LinkedListNode<A>无法投射到ALinkedListNode是节点,而不是节点的值。

如果你想在节点来获取值,那么你需要调用head.Value

A old = head.Value; 
+0

谢谢!所以这种情况下没有任何演员阵容可用? –

+1

没有将通用类型转换为通用参数的通用方法。用'List '来看比较容易。如果'list'是'List ''int a =(int)list'有什么意义?没有列表是int的List,而不是int本身。所以默认情况下,C#不允许这种转换。 “LinkListNode ”可能定义一种转换方法,因此演员阵容可以工作,但他们没有。 https://msdn.microsoft.com/en-us/library/85w54y0a.aspx – shf301

+0

谢谢!这是更好的解释。我知道了 –