我试图在特定索引的列表中添加一个值,根据我读过的所有内容,该值应该可以使用List的Insert()
方法。
除了我得到例外"索引必须在列表的范围内。参数名称:index`
这是我的完整示例代码。
class Program
{
static void Main(string[] args)
{
MyList myList = new MyList();
}
}
class MyList : List<int>
{
public MyList()
{
this.Capacity = 2;
this.Insert(1, 0);
}
}
是唯一可以更改为可空列表类型并为每个索引调用.Add(null)
而不使用Insert()
的选项吗?
答案 0 :(得分:1)
获取或设置内部数据结构的元素总数 可以在不调整大小的情况下持有。
您正在尝试向不存在的存储桶添加内容
<强>更新强>
我正在尝试在最后一个索引之后插入一个项目,这就是 使用1。
从您的代码中,0处没有任何内容可以在1
处添加任何内容在向1
添加内容之前先添加一些内容为0也不要继承表单列表,因为很多原因它的表单不好。
var myAwesomeList = new List<int>();
// add the number 10
myAwesomeList.Add(10);
// insert the number 7 before 10
myAwesomeList.Insert(0,7);
答案 1 :(得分:1)
您无法在最后一项之外插入项目,这就是您收到超出范围的错误消息的原因。
如果您事先知道列表不会超过特定大小的容量,那么设置列表的容量会很有趣。
设置容量不会在列表中创建任何元素。