Converting 'System.Collections.Generic.IEnumerable<T&
本文关键字:IEnumerable lt Generic System Converting Collections | 更新日期: 2023-09-27 18:19:08
我有一个集合,我试图使用Distinct方法来删除重复项。
public static Collection<MediaInfo> imagePlaylist
imagePlaylist = imagePlaylist.Distinct(new API.MediaInfoComparer());
我得到错误"不能隐式转换类型"System.Collections.Generic。到System.Collections.ObjectModel.Collection。存在显式转换(您是否缺少强制转换?)"
imagePlaylist曾经是一个列表(我可以使用。tolist()),但为了遵守"CA1002不暴露通用列表",我想将列表转换为集合。
-谢谢
您可以做的是,首先将IEnumrable
转换为泛型列表,然后使用该列表使用Collection
类的参数化构造函数创建新的Collection
。
public static Collection<MediaInfo> imagePlaylist
imagePlaylist = new Collection<MediaInfo>
(
imagePlaylist
.Distinct(new API.MediaInfoComparer())
.ToList()
);
我为此创建了一个小扩展方法:
public static class CollectionUtils
{
public static Collection<T> ToCollection<T>(this IEnumerable<T> data)
{
return new Collection<T>(data.ToList());
}
}
这样你就可以进行内联&在整个解决方案中重用该实用程序:
imagePlaylist.Distinct(new API.MediaInfoComparer()).ToCollection();