我需要删除Vector3列表中的元素重复项。 例如,这是一个列表:
List<Vector3> PointsToGo = new List<Vector3>();
PointsToGo.Add(new Vector3(1, 1, 1));
PointsToGo.Add(new Vector3(2, 2, 2));
PointsToGo.Add(new Vector3(1, 1, 1)); // Get this one or the first one out
PointsToGo.Add(new Vector3(4, 4, 4));
你知道如何解决这个问题吗?也许Linq可以帮助我?
感谢您的回答!
答案 0 :(得分:5)
这是您的解决方案
PointsToGo = PointsToGo.Distinct().ToList();
请注意,您已将using System.Linq;
添加到代码顶部。
答案 1 :(得分:2)
如果您不想使用Linq(根据Unity doc这是一件好事),您可以使用以下内容:
List<Vector3> list = new List<Vector3>(new HashSet<Vector3>(originalListWithDuplicate));
另一种解决方案是使用HashSet集合。这是该集合的目的,避免重复。您可能必须实现IEqualityComparer,因此它的行为完全符合您的需要。