我有一个 IList 。
IList<MyClass> MyList
{
get;
set;
}
我在页面加载中将 Myclass 列表复制到此
MyList=Listofmyclass;
我想向 MyList 添加一个新项目
MyList.Add(NewItem);
但是当我使用此代码时,我得到错误“集合是固定大小的。 ”
如何将新项目添加到 IList?
我假设这MyList
是一个MyClass[]
. 数组具有固定大小,您不能向其中添加项目。相反,如果可能的话,我会分配一个List<MyClass>
支持它的代替。
可能是您有一个固定大小的 Listofmyclass 实现,换句话说:
IsFixedSize == true
这可以防止添加/删除列表元素。
IList 实现分为三类:只读、固定大小和可变大小。无法修改只读 IList。固定大小的 IList 不允许添加或删除元素,但允许修改现有元素。可变大小的 IList 允许添加、删除和修改元素。
看这里
IList
如果集合的实际类型支持添加,您只能将项目添加到。在你的情况下它没有。例如,如果您使用数组,则它不支持添加。
您可以使用该ToList
方法将您的收藏变成一个列表,该列表支持添加:
MyList = Listofmyclass.ToList();