Я пытаюсь удалить дубликаты из списка, содержащего общий класс. Общий класс выглядит следующим образом (раздел назад, например):Удалить дубликаты из списка, содержащего общий класс
public class Point2D<T>
{
public T x;
public T y;
public Point2D(T x, T y)
{
this.x = x;
this.y = y;
}
}
и я создал список, как это:
List<Point2D<int>> pointList = new List<Point2D<int>>();
pointList.Add(new Point2D<int>(1,1));
pointList.Add(new Point2D<int>(1,2));
pointList.Add(new Point2D<int>(1,1));
pointList.Add(new Point2D<int>(1,3));
Я попытался удалить дубликаты по:
pointList = pointList.Distinct().ToList();
ожидая, что pointList
будет содержать только: (1,1), (1,2), (1,3), но он все еще содержит все четыре точки, которые были введены. Я подозреваю, что мне нужен мой собственный метод equals или comparator в Point2D
, но я не знаю, так ли это, или как они должны быть написаны (если, конечно, я просто пропустил что-то простое).
Хороший оль-регарпер, а? – Blorgbeard
@Blorgbeard да, он делает такие тиги быстрыми и легкими – Backs
@ Загружает Я не уверен в методе GetHashCode, поэтому вам нужно будет прочитать об этом, но это позволяет моим модульным тестам проходить. Благодарю. – Ayb4btu