我有一个空列表定义为包含120个值,我想在索引(45)处插入一个元素,即使该列表当前为空.这可能吗?
public ListTickets = 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
Dictionarytickets = new Dictionary (); tickets.Add(45, ticket);
或创建List
持有120个空值:
Listtickets = Enumerable.Repeat(default(Ticket), 120).ToList();
fubo.. 8
120
被定义为列表的容量 - 而不是真正存在的元素.所以在这种情况下,您的列表在插入时包含0个元素.
当您尝试将位置45处的元素插入空列表时 - ArgumentOutOfRangeException有意义
您将列表的初始内部容量设置为120.列表仍为空.
List
可以容纳任意数量的物品.在内部,它使用数组来存储它们.如果数组已满,列表将分配一个新的,更大的数组.如果您事先知道项目数,则可以在构造列表时设置内部数组的大小.这样就可以避免不必要的内存分配.
你可以使用一个数组:
Ticket[] tickets = new Ticket[120]; tickets[45] = ticket
或者a Dictionary
Dictionarytickets = new Dictionary (); tickets.Add(45, ticket);
或创建List
持有120个空值:
Listtickets = Enumerable.Repeat(default(Ticket), 120).ToList();
120
被定义为列表的容量 - 而不是真正存在的元素.所以在这种情况下,您的列表在插入时包含0个元素.
当您尝试将位置45处的元素插入空列表时 - ArgumentOutOfRangeException有意义
你也可以使用字典
var dic = new Dictionary(); dic[45] = ticket;