如何将IEnumerable集合添加到ICollection列表中

本文关键字:ICollection 列表 添加 集合 IEnumerable | 更新日期: 2024-10-22 14:22:13

我添加了将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;
}

但第一次将集合变量初始化为null。然后我得到了"对象引用未找到错误",请告诉我如何将Ienumerable列表数据正确添加到Icollection?

编辑:

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

如何将IEnumerable集合添加到ICollection列表中

您没有初始化集合。并且可以用更好的方式调用扩展方法。

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

看看这个代码:

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

您永远不会在userInAppRole变量中实例化集合;它是空的。当您尝试将result添加到null中时,会得到一个异常。

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