gpt4 book ai didi

c# - 在给定的公差范围内清理列表

转载 作者:行者123 更新时间:2023-11-30 23:20:15 25 4
gpt4 key购买 nike

我有一个列表,其中每个 double[] 的长度为 3。我想通过只留下那些在给定公差范围内具有唯一元素的 double[] 来清理这个列表(向上舍入)。例如,如下所示的列表:

1059.17 0 446.542225842081
1059.17 0 446.542564789741
1059.17 0 446.541759880305
959.167 0 579.827860527898
959.167 0 579.827847296075

对于给定的 tolerance=two 应该变成这样:

1059.17 0 446.54,
959.17 0 579.83,

有没有一种聪明的方法可以巧妙地做到这一点?

最佳答案

这应该有效。它使用匿名类型的内置相等比较。

List<double[]> data = ...
int tolerance = 2;
var roundedData = data
.Select(x => new {
v1 = Math.Round(x[0], tolerance),
v2 = Math.Round(x[1], tolerance),
v3 = Math.Round(x[2], tolerance)
})
.Distinct()
.Select(x => new [] { x.v1, x.v2, x.v3 })
.ToList();

关于c# - 在给定的公差范围内清理列表<double[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39828857/

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