Как добавить коллекцию IEnumerable в список ICollection?

Я добавляю метод добавления коллекции Ienumerable в Icollection.

public static ICollection<T> AddTo<T>(this IEnumerable<T> list,ICollection<T> collection) {
    foreach (T item in list) {
        collection.Add(item);
    }
    return collection;
}

Но сначала инициализировал переменную коллекции как нулевую. Затем я получаю сообщение об ошибке «Ссылка на объект не найдена». Скажите, пожалуйста, как правильно добавить данные списка Ienumerable в Icollection?

РЕДАКТИРОВАТЬ:

 ICollection<UserInApplication> userInAppRole=null;
                IEnumerable<UserInApplication> result=null;
   result = _userService.UserInApplicationRoles(iAppRoleId,  collection["displayName"]).AsEnumerable();
     userInAppRole = Extensions.AddTo<UserInApplicationRole>(result,userInAppRole);

person user3106578    schedule 18.12.2013    source источник
comment
В этом коде нет ничего плохого (кроме небольшой проверки параметров). Покажи нам, как ты это называешь.   -  person p.s.w.g    schedule 18.12.2013
comment
Лучше использовать AddRange (аналог List‹›) и поменять местами параметры.   -  person AgentFire    schedule 18.12.2013


Ответы (2)


Вы не инициализируете свою коллекцию. И методы расширения можно вызывать получше.

ICollection<UserInApplication> userInAppRole=new Collection<UserInApplication>(); //Initialize this
IEnumerable<UserInApplication> result=null;
result = _userService.UserInApplicationRoles(iAppRoleId,collection["displayName"])
                     .AsEnumerable();
 userInAppRole = result.AddTo(userInAppRole); 
person Mat J    schedule 18.12.2013

Посмотрите на этот код:

ICollection<UserInApplication> userInAppRole=null;
IEnumerable<UserInApplication> result=null;
result = _userService.UserInApplicationRoles(iAppRoleId,  collection["displayName"]).AsEnumerable();
userInAppRole = Extensions.AddTo<UserInApplicationRole>(result,userInAppRole)

Вы никогда не создаете коллекцию в переменной userInAppRole; это ноль. Когда вы пытаетесь добавить result к нулю, вы получаете исключение.

person Daniel Mann    schedule 18.12.2013