C# 在将一个范围映射到另一个范围时删除异常值?

C# 在将一个范围映射到另一个范围时删除异常值?,c#,.net,C#,.net,我询问如何将0到n到0到9之间的范围映射 我使用此解决方案,它可以: private int MapValue(int value, int n) { int output = (int)Math.Round((10.0 / (n - 1) * (value - 1)) - 0.5, 0); if (output == -1) return 0; else return output; } 现在我遇到了另一个问题。我举了一个例子,范围是0到1116。但是,大多数值或介于

我询问如何将0到n到0到9之间的范围映射

我使用此解决方案,它可以:

private int MapValue(int value, int n)
{
    int output = (int)Math.Round((10.0 / (n - 1) * (value - 1)) - 0.5, 0);
    if (output == -1) return 0;
    else return output;
}

现在我遇到了另一个问题。我举了一个例子,范围是0到1116。但是,大多数值或介于0和50之间,或者可能介于0和100之间。因此,尽管如此,大多数值都映射到相同的颜色。如何避免这些异常值干扰我的映射?

您需要找到异常值,然后将它们映射到范围内的高值或低值。有许多不同的方法可以找到异常值。搜索“如何查找异常值”,您将找到许多解决方案。

谢谢。这似乎需要很多计算:D