У меня есть List<CustomPoint> points;
, который содержит около миллиона объектов.
Из этого списка я хотел бы получить список объектов, которые происходят ровно в два раза. Какой был бы самый быстрый способ сделать это? Я также был бы заинтересован в опции не Linq, так как мне, возможно, придется это сделать и на С++.
public class CustomPoint
{
public double X { get; set; }
public double Y { get; set; }
public CustomPoint(double x, double y)
{
this.X = x;
this.Y = y;
}
}
public class PointComparer : IEqualityComparer<CustomPoint>
{
public bool Equals(CustomPoint x, CustomPoint y)
{
return ((x.X == y.X) && (y.Y == x.Y));
}
public int GetHashCode(CustomPoint obj)
{
int hash = 0;
hash ^= obj.X.GetHashCode();
hash ^= obj.Y.GetHashCode();
return hash;
}
}
на основе этого ответа, я пробовал,
list.GroupBy(x => x).Where(x => x.Count() = 2).Select(x => x.Key).ToList();
но это дает нулевые объекты в новом списке. Может ли кто-нибудь помочь мне в этом?