如何摆脱重复的数据?

时间:2018-12-16 04:46:30

标签: c# .net

有这样的功能:

public List<Point> FindNextPoint(List<Point> source, Point point, List<Point> findedPoints)
    {
        List<Point> result = new List<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;
    }

但是它会返回列表中的许多重复点,如果要摆脱它,该如何摆脱?谢谢

我的意思是,每当我运行该函数时,它都会返回一个列表,我想知道是否有可能返回一个不包含之前数据的列表。

例如。我首先运行该函数,它返回一个包含Point {x = 0,y = 1}的值,当我第二次运行该函数时,它将不会返回之前返回的相同Point,也不会通过FindAll来找到它。

1 个答案:

答案 0 :(得分:0)

返回数据时,您应该使用以下代码:

return result.Distinct();

并且不要忘记在下面的顶部添加代码,否则您将看不到Distinct函数:

using System.Linq;