Dej*_*n.S 7 .net c# icollection
我尝试做静态类,添加到icollection但我遇到了一些我似乎无法克服的问题.这就是我如何得到所以我可以在方法中传递ICollection?因为T就是说它无法解决.
然后我想知道有没有办法在icollection上做AddRange?
我在考虑这样的事情,但maby我已经不在乎了吗?
public static ICollection<T> add(this IEnumerable<T> list)
{
ICollection<T> collection = null;
return collection.AddRange(list);
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 16
不,ICollection<T>没有AddRange方法 - 即使它确实如此,你也会尝试取消引用null哪种方法NullReferenceException.您尚未指定要将列表添加到的集合...您到底想要做什么?
你可以创建(比方说)一个新的List<T>- 并且它的好处是已经有了一个构造函数可以采取IEnumerable<T>:
public static ICollection<T> Add<T>(this IEnumerable<T> list)
{
return new List<T>(list);
}
Run Code Online (Sandbox Code Playgroud)
但是,那时你真的只是重新实现Enumerable.ToList()并给它一个不同的返回类型......
如果要将所有内容添加到现有集合中,您可能需要以下内容:
public static ICollection<T> AddTo<T>(this IEnumerable<T> list,
ICollection<T> collection)
{
foreach (T item in list)
{
collection.Add(item);
}
return collection;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6919 次 |
| 最近记录: |