C# 添加到LinkedList后的LinkedListNode不';t设置下一个和上一个字段

C# 添加到LinkedList后的LinkedListNode不';t设置下一个和上一个字段,c#,C#,我是C#新手,正在尝试使用LinkedList 在我看来,你的LinkedListNode对象每个只有一个项目;根据MSDN文件 LinkedListNode.Previous属性:对LinkedList中上一个节点的引用,或null(如果当前节点是LinkedList的第一个元素(第一个)) LinkedListNode.Next属性:对LinkedList中下一个节点的引用,或null(如果当前节点是LinkedList的最后一个元素,则为null) 如果只有一个元素,那么它既是第一个元素也

我是C#新手,正在尝试使用
LinkedList


在我看来,你的LinkedListNode对象每个只有一个项目;根据MSDN文件

LinkedListNode.Previous属性:对LinkedList中上一个节点的引用,或null(如果当前节点是LinkedList的第一个元素(第一个))

LinkedListNode.Next属性:对LinkedList中下一个节点的引用,或null(如果当前节点是LinkedList的最后一个元素,则为null)


如果只有一个元素,那么它既是第一个元素也是最后一个元素,因此两种方法的结果都为空。

使用linkedlist时,类型T不需要是所需类型的LinkedListNode。您可以直接使用所需的类型

 var newsList = new LinkedList<News>();

 newsList.AddLast(new LinkedListNode<News>(new News(1, "News first")));
 newsList.AddLast(new LinkedListNode<News>(new News(2, "News second")));
 newsList.AddLast(new LinkedListNode<News>(new News(3, "News third")));
var newsList=newlinkedlist();
AddLast(新的LinkedListNode(新的新闻(1,“新闻优先”));
AddLast(新的LinkedListNode(新的新闻(2,“新闻第二”));
AddLast(新的LinkedListNode(新的新闻(3,“新闻第三”));

这将按照您想要的方式设置链接列表。

您不应该有
链接列表。您应该使用
链接列表
LinkedList
将隐式地将每个元素包装在它自己的
LinkedListNode
中。现在发生的是,有一堆
LinkedListNode
对象,外部节点的
Next
/
Previous
都被适当设置,但是内部节点的
Next
/
Previous
属性都为
null

下面是创建
链接列表的适当方法

var newsList = new LinkedList<News>();

newsList.AddLast(new News(1,"News first"));
newsList.AddLast(new News(2, "News second"));
newsList.AddLast(new News(3, "News third"));
var newsList=newlinkedlist();
newsList.AddLast(新新闻(1,“新闻优先”);
新闻列表.AddLast(新新闻(2,“新闻第二”);
新闻列表.AddLast(新新闻(3,“第三新闻”);

还要注意,
LinkedList
通常不是最好的数据结构;它很少比其他类型的收藏更可取。可能性是,您最好使用
列表
堆栈
队列
,这取决于您使用它的方式。

如果您试图将所有三项添加到列表中,请使用此选项

var newsItems = new News[]  {
           new News(1,"News first"), 
           new News(2, "News second"), 
           new News(3, "News third")};

var newsList = new LinkedList<News>(newsItems);
var newsItems=newnews[]{
新新闻(1,“新闻优先”),
新消息(2,“第二新闻”),
新新闻(3,“第三新闻”);
var newsList=新链接列表(新闻项);

现在还不清楚你在用链表做什么,以及为什么它不起作用。请显示您正在使用的实际代码,并解释您遇到的错误,或者行为与您的期望有何不同。现在运行正常,添加了实际代码
var newsList = new LinkedList<News>();

newsList.AddLast(new News(1,"News first"));
newsList.AddLast(new News(2, "News second"));
newsList.AddLast(new News(3, "News third"));
var newsItems = new News[]  {
           new News(1,"News first"), 
           new News(2, "News second"), 
           new News(3, "News third")};

var newsList = new LinkedList<News>(newsItems);