HashSet 没有 AddRange 方法,所以我想为它写一个扩展方法。这就是我所拥有的:
public static void AddRange<T>(this ICollection<T> collection, IEnumerable<T> list)
{
foreach (var item in list)
{
collection.Add(item);
}
}
我有一个基类 Media 和一个派生类 Photo。这是我想要工作的代码:
var photos = new List<Photo>();
var media = new HashSet<Media>();
media.AddRange(photos);
但是,编译器告诉我,当我List<Photo>
尝试IEnumerable<Media>
使用AddRange()
. 我很确定这是因为我有IEnumerable<T>
扩展方法,但是我该如何编写它以使类型与 in 中的类型不同AddRange<T>
?