gpt4 book ai didi

c# - 从数据点列表中获取不同的项目

转载 作者:行者123 更新时间:2023-11-30 21:19:00 25 4
gpt4 key购买 nike

我有一个数据点列表(List)。

e.g

original list
(1,2)
(2,2)
(1,3)
(3,3)
(4,3)
(2,3)
(5,4)

I want a output list as

(1,2)
(2,2)
(3,3)
(4,3)
(5,4)
or

(1,3)
(3,3)
(4,3)
(2,3)
(5,4)

即我想删除 X 值重复的所有其他点。

我的一种方法是遍历所有点并获取当前点的 x 值,如果它等于其他点的 X 值,则将其与列表的其余部分进行比较,然后删除该值。

我将如何使用 LINQ 或某些扩展方法(Distinct)做到这一点

最佳答案

LINQ 的一种方法是按 X 坐标对点进行分组,然后从每个组中挑选一些任意项来生成输出。

var filtered = myList.GroupBy(point => point.XValue) // point's bucket depends on its X
.Select(group => group.First()) //pick first item from each bucket
.ToList();

编辑:一种不用 LINQ 的简单方法:

var pointsByXCoord = new Dictionary<double, DataPoint>();

foreach(var point in myList)
pointsByXCoord[point.XValue] = point;

var filtered = pointsByXCoord.Values;

关于c# - 从数据点列表中获取不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3984391/

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