Maciej Los
Начать здесь: Как найти заданную разницу между двумя списками (LINQ)[^]
Например:
Определение класса
public class Point
{
private int x = 0;
private int y = 0;
public Point()
{
//default constructor
}
public Point(int _x, int _y)
{
x = _x;
y = _y;
}
public int X
{
get { return x; }
set { x = value; }
}
public int Y
{
get { return y; }
set { y = value; }
}
public override bool Equals(Object obj)
{
// Check for null values and compare run-time types.
if (obj == null || GetType() != obj.GetType())
return false;
Point p = (Point)obj;
return (x == p.x) && (y == p.y);
}
public override int GetHashCode()
{
return x ^ y;
}
}
Использование:void Main()
{
List<Point> pointsA = new List<Point>();
pointsA.Add(new Point(5,5));
pointsA.Add(new Point(10,8));
List<Point> pointsB = new List<Point>();
pointsB.Add(new Point(5,5));
pointsB.Add(new Point(9,8));
var result = pointsA.Union(pointsB) //union
.Except( //except
pointsA.Intersect(pointsB) //common
);
}
Результат:X Y
10 8
9 8
Как видите, список результатов содержит уникальные точки.
Maciej Los
Может быть, ты и прав, Филипп. Наверное ОП хочет получить только 2 очка: {(10,8), (9,8)}. Скоро я улучшу свой ответ.
[РЕДАКТИРОВАТЬ]
- Готово!