gpt4 book ai didi

c# - 有没有一种方法可以使用 LINQ 从 List 中删除某些元素?

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:21 25 4
gpt4 key购买 nike

我有一个有序的对象列表。我想删除多余的对象,其中冗余不一定意味着重复。这是一个例子:

List<Point> points = new List<Point>
{
new Point(0, 10),
new Point(1, 12),
new Point(2, 16),
new Point(3, 16),
new Point(4, 16),
new Point(5, 13),
new Point(6, 16),
};

我有兴趣删除 new Point(3, 16) 条目,因为它没有提供有用的信息;我已经知道2处的元素=16,4处的元素=16。 3=16 的信息对我的应用程序没有任何好处(因为我已经有了边界 {2,4}=16),所以我想删除该条目。我也不想保留第 5 个和第 6 个条目,因为 Y=16 时没有连续的条目。

有没有一种巧妙的方法可以用 linq 做到这一点?

最佳答案

这个呢?

public void Test()
{
List<Point> points = new List<Point>
{
new Point(0, 10),
new Point(1, 12),
new Point(2, 16),
new Point(3, 16),
new Point(4, 16),
new Point(5, 13),
new Point(6, 16),
};
var subSetOfPoints = points.Where(p=> !IsInTheMiddleX(p, points));
}

private bool IsInTheMiddleX(Point point, IEnumerable<Point> points)
{
return points.Any(p => p.X < point.X && p.Y == point.Y) &&
points.Any(p => p.X > point.X && p.Y == point.Y);
}

关于c# - 有没有一种方法可以使用 LINQ 从 List<T> 中删除某些元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com