Любые идеи о том, почему это
public Collection<Point> data = new Collection<Point>(){
new Point{X=10,Y=20},
new Point{X=20,Y=30},
new Point{X=40,Y=20},
new Point{X=10,Y=20}
};
(обратите внимание на идентичные первый и последний элементы)
выдает ошибку
Элемент с таким же ключом уже добавлен.
Если вы измените последний элемент на Y = 20,1 или что-то, что отличает его от других, он будет работать.
Также вы можете добавлять элементы так, как вам нравится, и получать тот же результат.
Проблема, очевидно, связана с тем, что Point является типом значения, поскольку он исчезает, если вы определяете и используете класс точек, и я знаю, что существуют проблемы с использованием структур в других типах коллекций, но это связано с разницей между значением и ref возвращаемые типы. Меня удивляет то, что это работает, если все структуры имеют разные значения полей.