如何过滤掉重复数据?

快跑稻草人 快跑稻草人 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想做这样一个程序,有一个包含很多点(x,y)的List,变量名为source,我想获取到其中所有相邻的点,做了如下的程序:
public List<Point> FindNextPoint(List<Point> source, Point point, List<Point> findedPoints)
{
List<Point> result = new List<Point>();
result.Add(point);
findedPoints.Add(point);
List<Point> points = source.FindAll(
delegate (Point i)
{
return (Math.Abs(i.X - point.X) <= 2 && Math.Abs(i.Y - point.Y) <= 2) && !findedPoints.Contains(i);
}
);
result.AddRange(points);
findedPoints.AddRange(points);
for (int i = 0; i < points.Count; i++)
{
List<Point> findPoints = FindNextPoint(source, points[i], findedPoints);
result.AddRange(findedPoints);
}
return result;
}

p是所有点的列表,areas是获取的所有相邻的点的集合,但是这个获取的过程中,总是有很多重复的点。
for (int i = 0; i < p.Count; i++)
{
if (findedPoints.Contains(p[i])) continue;

first = FindNextPoint(p, p[i], findedPoints);

if (first.Count <= 0) continue;

Point[] item = (Point[])first.ToArray().Clone();

areas.Add(item.ToList());
first.Clear();
}


请问应该如何去掉这些重复的点?
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
快跑稻草人
C# 111,128 成员 642,537 内容