Добавить в коллекцию ICollection

в настоящее время я пишу проект C#, и мне нужно сделать модульное тестирование для проекта. Для одного из методов, которые мне нужны для модульного теста, я использую ICollection, который обычно заполняется из выбранных элементов списка.

когда я создаю модульный тест для метода, он создает строку

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

Как создать экземпляр этой коллекции ICollection и элемент коллекции?

5 ответов


ICollection - это интерфейс, вы не можете инстанцировать его напрямую. Вам нужно создать экземпляр класса, который реализует ICollection, например, List<T>. Кроме того,ICollection интерфейс нет Add метод -- вам понадобится что-то, что реализует IList или IList<T> для этого.

пример:

List<object> icollection = new List<object>();
icollection.Add("your item here");

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

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

вопреки некоторым комментариям,IList<T> реализует ICollection, по крайней мере, насколько я могу сказать.


допустим, у вас будет коллекция строк, тогда код будет:

ICollection<string> test = new Collection<string>();
test.Add("New Value");

Я считаю, что вам нужно унаследовать ICollection интерфейс в новый класс, прежде чем вы можете использовать его.

как реализовать ICollection


что вы можете сделать, это создать тип, который реализует интерфейс ICollection и оттуда использовать его в тестирование. Список сработает для создания экземпляра объекта. Я предполагаю, что другой вопрос будет в том, какой тип являются элементами списка. Добавление элементов в список или коллекцию довольно тривиально, просто используя .Добавлять.(..) метод.

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

есть ли что-то более конкретное, что вам нужно сделать с этой коллекцией?