我有以下类型的列表集合
CoordinateCollection pointCoordinates = new CoordinateCollection();
它添加了类型向量列表。 我想从列表中删除重复的条目
我正在尝试这样
pointCoordinates = pointCoordinates.Distinct();
它给了我一个错误
cannot implicitly convert type 'system.collections.generic.ienumerable<SharpKML.Base.Vector> to SharpKML.Dom.CoordinateCollection
请帮我解决这个问题。我想要一组独特的记录
答案 0 :(得分:1)
由于CoordinateCollection
实施ICollection<Vector>
和Vector
覆盖Equals
+ GethashCode
,您可以使用Distinct
。但是你需要使用CoordinateCollection
的构造函数来创建一个新的:
pointCoordinates = new CoordinateCollection(pointCoordinates.Distinct());
请注意,我不熟悉SharpKML
,我看过source code。
答案 1 :(得分:1)
如消息所述,您不能隐式地将类型为system.collections.generic.ienumerable<SharpKML.Base.Vector>
的对象分配给类型为SharpKML.Dom.CoordinateCollection
的对象。我建议使用其中一种类型转换方法(记录为here)。
答案 2 :(得分:0)
区别将返回IEnumerable<SharpKML.Base.Vector>
。您无法将该类型分配给CoordinateCollection
个实例,因为即使是IEnumerable<SharpKML.Base.Vector>
,它也可能不是CoordinateCollection
的实例。
如果您需要CoordinateCollection
的实例,请创建/使用一个构造函数,该构造函数将IEnumerable<SharpKML.Base.Vector>
作为输入,否则如果IEnumerable<SharpKML.Base.Vector>
将执行,则声明您的变量。