当前位置:  开发笔记 > 编程语言 > 正文

如何在自定义索引处的列表中插入对象

如何解决《如何在自定义索引处的列表中插入对象》经验,为你挑选了3个好方法。

我有一个空列表定义为包含120个值,我想在索引(45)处插入一个元素,即使该列表当前为空.这可能吗?

public List Tickets = new List(120);

Tickets.Insert(45,ticket); // Here I am getting the ArgumentOutOfRangeException

Jakub Lortz.. 12

您将列表的初始内部容量设置为120.列表仍为空.

List可以容纳任意数量的物品.在内部,它使用数组来存储它们.如果数组已满,列表将分配一个新的,更大的数组.如果您事先知道项目数,则可以在构造列表时设置内部数组的大小.这样就可以避免不必要的内存分配.

你可以使用一个数组:

Ticket[] tickets = new Ticket[120];
tickets[45] = ticket

或者a Dictionary

Dictionary tickets = new Dictionary();
tickets.Add(45, ticket);

或创建List持有120个空值:

List tickets = Enumerable.Repeat(default(Ticket), 120).ToList();


fubo.. 8

120被定义为列表的容量 - 而不是真正存在的元素.所以在这种情况下,您的列表在插入时包含0个元素.

当您尝试将位置45处的元素插入空列表时 - ArgumentOutOfRangeException有意义



1> Jakub Lortz..:

您将列表的初始内部容量设置为120.列表仍为空.

List可以容纳任意数量的物品.在内部,它使用数组来存储它们.如果数组已满,列表将分配一个新的,更大的数组.如果您事先知道项目数,则可以在构造列表时设置内部数组的大小.这样就可以避免不必要的内存分配.

你可以使用一个数组:

Ticket[] tickets = new Ticket[120];
tickets[45] = ticket

或者a Dictionary

Dictionary tickets = new Dictionary();
tickets.Add(45, ticket);

或创建List持有120个空值:

List tickets = Enumerable.Repeat(default(Ticket), 120).ToList();



2> fubo..:

120被定义为列表的容量 - 而不是真正存在的元素.所以在这种情况下,您的列表在插入时包含0个元素.

当您尝试将位置45处的元素插入空列表时 - ArgumentOutOfRangeException有意义



3> Hamid Pourja..:

你也可以使用字典

var dic = new Dictionary();
dic[45] = ticket;

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有