21

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

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

ICollection icollection = null; //Initialise to an appropriate value

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

4

5 回答 5

35

ICollection是一个接口,不能直接实例化。您需要实例化一个实现的类ICollection;例如,List<T>。此外,ICollection接口没有Add方法——你需要一些实现IList或实现的东西IList<T>

例子:

List<object> icollection = new List<object>();
icollection.Add("your item here");
于 2011-10-18T14:20:47.693 回答
5
List<Object> list = new List<Object>();
list.Add(object1);
list.Add(object2);
// etc...

ICollection collection = list;
// further processing of collection here.

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

于 2011-10-18T14:38:09.953 回答
3

假设您将有一个字符串集合,那么代码将是:

ICollection<string> test = new Collection<string>();
test.Add("New Value");
于 2011-10-18T14:20:33.373 回答
0

我相信您需要将ICollection接口继承到一个新类中才能使用它。

如何实现 ICollection

于 2011-10-18T14:22:27.113 回答
0

您可以做的是创建一个实现 ICollection 的类型,然后在您的测试中使用它。List 或 Collection 可用于创建对象的实例。我想另一个问题是列表框的项目是什么类型。仅使用 .Add(...) 方法将项目添加到 List 或 Collection 非常简单。

List<T> list = new List<T>();
list.Add(item_from_your_list_box);
list.Add(item2_from_your_list_box);

你需要对这个系列做一些更具体的事情吗?

于 2011-10-18T14:24:13.867 回答