将'System.Collections.Generic.IEnumerable <T>'转换为'System.Collections.ObjectModel.Collection <T>'

zaz*_*aza 6 c# linq generics collections implicit-conversion

我有一个Collection,我正在尝试使用Distinct方法删除重复项.

public static Collection<MediaInfo> imagePlaylist

imagePlaylist = imagePlaylist.Distinct(new API.MediaInfoComparer());
Run Code Online (Sandbox Code Playgroud)

我得到错误"无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.ObjectModel.Collection'.存在显式转换(您是否错过了转换?)"

imagePlaylist曾经是一个List(我可以使用.ToList()),但为了符合"CA1002不公开通用列表"我想将List转换为Collection.

-谢谢

Mah*_*eep 13

您可以做的是,首先转换IEnumrable为通用列表,然后使用此列表Collection使用Collection类的参数化构造函数创建新的列表.

public static Collection<MediaInfo> imagePlaylist

imagePlaylist = new Collection<MediaInfo>
                    (
                       imagePlaylist
                      .Distinct(new API.MediaInfoComparer())
                      .ToList()
                    );
Run Code Online (Sandbox Code Playgroud)