不同的列表元素

时间:2014-02-11 16:39:54

标签: c# asp.net sharpkml

我有以下类型的列表集合

CoordinateCollection pointCoordinates = new CoordinateCollection();

它添加了类型向量列表。 我想从列表中删除重复的条目

我正在尝试这样

pointCoordinates = pointCoordinates.Distinct();

它给了我一个错误

cannot implicitly convert type 'system.collections.generic.ienumerable<SharpKML.Base.Vector> to SharpKML.Dom.CoordinateCollection

请帮我解决这个问题。我想要一组独特的记录

3 个答案:

答案 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>将执行,则声明您的变量。