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;
这样后两句会显示错误,要怎么才能实现这三句交换。 展开
已经向list加入10个时间值了,要进行排序时:
DateTime dt = list.ElementAt(i);
list.ElementAt(i)=list.ElementAt(j);
list.ElementAt(j)=dt;
这样后两句会显示错误,要怎么才能实现这三句交换。 展开
2个回答
展开全部
实现方法(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>本身不支持通过下标存取链表中的元素。
展开全部
排序 直接用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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询