Nau*_*nja 6 .net c# list object
我有一个空列表定义为包含120个值,我想在索引(45)处插入一个元素,即使该列表当前为空.这可能吗?
public List<Ticket> Tickets = new List<Ticket>(120);
Tickets.Insert(45,ticket); // Here I am getting the ArgumentOutOfRangeException
Run Code Online (Sandbox Code Playgroud)
Jak*_*rtz 12
您将列表的初始内部容量设置为120.列表仍为空.
List<T>可以容纳任意数量的物品.在内部,它使用数组来存储它们.如果数组已满,列表将分配一个新的,更大的数组.如果您事先知道项目数,则可以在构造列表时设置内部数组的大小.这样就可以避免不必要的内存分配.
你可以使用一个数组:
Ticket[] tickets = new Ticket[120];
tickets[45] = ticket
Run Code Online (Sandbox Code Playgroud)
或者a Dictionary<int, Ticket>
Dictionary<int, Ticket> tickets = new Dictionary<int, Ticket>();
tickets.Add(45, ticket);
Run Code Online (Sandbox Code Playgroud)
或创建List<Ticket>持有120个空值:
List<Ticket> tickets = Enumerable.Repeat(default(Ticket), 120).ToList();
Run Code Online (Sandbox Code Playgroud)
你也可以使用字典
var dic = new Dictionary<int,Ticket>();
dic[45] = ticket;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |