添加到ICollection

Boa*_*rdy 15 c# icollection

我目前正在编写一个C#项目,我需要对项目进行单元测试.对于我需要进行单元测试的方法之一,我使用ICollection,该ICollection通常从列表框的选定项中填充.

当我为方法创建单元测试时,它会创建该行

ICollection icollection = null; //Initialise to an appropriate value
Run Code Online (Sandbox Code Playgroud)

如何创建此ICollection的实例和集合中的项?

Don*_*nut 29

ICollection是一个接口,你不能直接实例化它.您需要实例化一个实现的类ICollection; 例如,List<T>.此外,ICollection界面没有Add方法 - 你需要一些实现IListIList<T>为此.

例:

List<object> icollection = new List<object>();
icollection.Add("your item here");
Run Code Online (Sandbox Code Playgroud)

  • @AtishDipongkor该链接指的是`ICollection <T>`接口,它与`ICollection`接口不同.你是正确的`ICollection <T>`包含一个`Add()`方法; 但是,`ICollection`不会:http://msdn.microsoft.com/en-us/library/system.collections.icollection.aspx (5认同)
  • @Donut撰写评论的方式让我觉得最后需要QED. (3认同)

Alt*_*air 5

List<Object> list = new List<Object>();
list.Add(object1);
list.Add(object2);
// etc...

ICollection collection = list;
// further processing of collection here.
Run Code Online (Sandbox Code Playgroud)

与某些评论相反,IList<T>确实实现了ICollection,至少据我所知。