C# 如何使用LINQ查找列表中仅重复一次的项
假设我们有一个C# 如何使用LINQ查找列表中仅重复一次的项,c#,linq,list,C#,Linq,List,假设我们有一个列表点,如下所示,如何获得列表中只重复一次的点对象:p(30,10)和p(30,0) var Points=新列表 { 新点{X=0,Y=0}, 新点{X=10,Y=20}, 新点{X=30,Y=10}, 新点{X=30,Y=0}, 新点{X=0,Y=0}, 新点{X=10,Y=20} }; 公共课点 { 公共双X; 公共双Y; }; var Points = new List<Point> { new Point { X = 0, Y = 0 },
列表点
,如下所示,如何获得列表中只重复一次的点
对象:p(30,10)和p(30,0)
var Points=新列表
{
新点{X=0,Y=0},
新点{X=10,Y=20},
新点{X=30,Y=10},
新点{X=30,Y=0},
新点{X=0,Y=0},
新点{X=10,Y=20}
};
公共课点
{
公共双X;
公共双Y;
};
var Points = new List<Point>
{
new Point { X = 0, Y = 0 },
new Point { X = 10, Y = 20 },
new Point { X = 30, Y = 10 },
new Point { X = 30, Y = 0 },
new Point { X = 0, Y = 0 },
new Point { X = 10, Y = 20 }
};
public class Point
{
public double X;
public double Y;
};
var query = Points
.GroupBy(p => new { p.X, p.Y }) // Group points based on (X,Y).
.Where(g => g.Count() == 1) // Take groups with exactly one point.
.Select(g => g.Single()); // Select the point in each group.