Добавить в ICollection - PullRequest
       4

Добавить в ICollection

15 голосов
/ 18 октября 2011

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

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

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

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

Ответы [ 5 ]

29 голосов
/ 18 октября 2011

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

Пример:

List<object> icollection = new List<object>();
icollection.Add("your item here");
4 голосов
/ 18 октября 2011
List<Object> list = new List<Object>();
list.Add(object1);
list.Add(object2);
// etc...

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

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

1 голос
/ 18 октября 2011

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

ICollection<string> test = new Collection<string>();
test.Add("New Value");
0 голосов
/ 18 октября 2011

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

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

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

0 голосов
/ 18 октября 2011

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

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

...