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