1

我有一个 IList 。

 IList<MyClass> MyList
    {
        get;
        set;
    }

我在页面加载中将 Myclass 列表复制到此

MyList=Listofmyclass;

我想向 MyList 添加一个新项目

MyList.Add(NewItem);

但是当我使用此代码时,我得到错误“集合是固定大小的。

如何将新项目添加到 IList?

4

3 回答 3

2

我假设这MyList是一个MyClass[]. 数组具有固定大小,您不能向其中添加项目。相反,如果可能的话,我会分配一个List<MyClass>支持它的代替。

于 2012-11-19T09:34:35.020 回答
1

可能是您有一个固定大小的 Listofmyclass 实现,换句话说:

IsFixedSize == true

这可以防止添加/删除列表元素。

IList 实现分为三类:只读、固定大小和可变大小。无法修改只读 IList。固定大小的 IList 不允许添加或删除元素,但允许修改现有元素。可变大小的 IList 允许添加、删除和修改元素。

这里

于 2012-11-19T09:35:21.973 回答
1

IList如果集合的实际类型支持添加,您只能将项目添加到。在你的情况下它没有。例如,如果您使用数组,则它不支持添加。

您可以使用该ToList方法将您的收藏变成一个列表,该列表支持添加:

MyList = Listofmyclass.ToList();
于 2012-11-19T09:36:06.363 回答