C#中的LinkedList怎么给指定下标的元素赋值??

比如定义一个LinkedList<DateTime>list=newLinkedList<DateTime>();已经向list加入10个时间值了,要进行排序时:Date... 比如定义一个LinkedList<DateTime> list = new LinkedList<DateTime>();
已经向list加入10个时间值了,要进行排序时:

DateTime dt = list.ElementAt(i);
list.ElementAt(i)=list.ElementAt(j);
list.ElementAt(j)=dt;

这样后两句会显示错误,要怎么才能实现这三句交换。
展开
 我来答
freeeeeewind
推荐于2016-07-24 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1362万
展开全部

实现方法(1)将LinkList<T>转换成数组;(2)对数组指定下标元素赋值;(3)再将数组转换成LinkList<T>。代码如下:

// 建立集合LinkList<int>
LinkedList<int> linkList = new LinkedList<int>();

// 添加元素 
LinkedListNode<int> node;
node =  linkList.AddFirst(1);
node = linkList.AddAfter(node, 2);
node = linkList.AddAfter(node, 3);
node = linkList.AddAfter(node, 4);
node = linkList.AddAfter(node, 5);

// 将“下标为2”元素值修改为300(原值=3)
// (1)将linkLit转换成 int[]
int[] a = new int[linkList.Count];
linkList.CopyTo(a, 0);
// (2)对数组指定下标元素赋值
a[2] = 300;
// (3)再数组转换成LinkList<int>
 linkList = new LinkedList<int>(a);

泛型集合LinkedList<T>实现双向链表,LinkedList<T>本身不支持通过下标存取链表中的元素。

傻傻地虾米
2014-03-07 · 超过16用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:43.2万
展开全部
排序 直接用LinkedList里的OrderBy这个方法
追问
OrderBy()的参数是什么呢?
追答
IEnumerable query = list.OrderBy(list=> list.Millisecond);//list.Millisecond就是根据毫秒排序,换成list.Day 根据天数排序,如果想先根据年月日时分秒排序的话,用list.Ticks 就可以了,多看看MSDN 里面都有 
http://msdn.microsoft.com/zh-cn/library/bb534966.aspx
foreach (DateTime pet in query)
{
Console.WriteLine(pet);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式