C# - zbędne wejście do else

0

Witam,
Mam taki program (załączam fragment kodu) :

if (valToMax < 0.0 || valToMax >= 1.0)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 255);
                    MessageBox.Show(valToMax.ToString());
                }
                if (valToMax >= 0.0 && valToMax < 0.01)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 255);
                }
                else if (valToMax >= 0.01 && valToMax < 0.02)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 230);
                }
                else if (valToMax >= 0.02 && valToMax < 0.03)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 205);
                }
                else if (valToMax >= 0.03 && valToMax < 0.04)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 180);
                }
                else if (valToMax >= 0.04 && valToMax < 0.05)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 155);
                }
                else if (valToMax >= 0.05 && valToMax < 0.06)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 130);
                }
                else if (valToMax >= 0.06 && valToMax < 0.07)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 105);
                }
                else if (valToMax >= 0.07 && valToMax < 0.08)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 80);
                }
                else if (valToMax >= 0.08 && valToMax < 0.09)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 50);
                }
                else if (valToMax >= 0.09 && valToMax < 0.10)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 25);
                }
                else if (valToMax >= 0.10 && valToMax < 0.11)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 0);
                }
                else if (valToMax >= 0.11 && valToMax < 0.12)
                {
                    resultColor = Color.FromArgb(alfa, 6, 255, 0);
                }
                else if (valToMax >= 0.12 && valToMax < 0.13)
                {
                    resultColor = Color.FromArgb(alfa, 13, 255, 0);
                }
                else if (valToMax >= 0.13 && valToMax < 0.14)
                {
                    resultColor = Color.FromArgb(alfa, 20, 255, 0);
                }
                else if (valToMax >= 0.14 && valToMax < 0.15)
                {
                    resultColor = Color.FromArgb(alfa, 26, 255, 0);
                }
                else if (valToMax >= 0.15 && valToMax < 0.16)
                {
                    resultColor = Color.FromArgb(alfa, 32, 255, 0);
                }
                else if (valToMax >= 0.16 && valToMax < 0.17)
                {
                    resultColor = Color.FromArgb(alfa, 40, 255, 0);
                }
                else if (valToMax >= 0.17 && valToMax < 0.18)
                {
                    resultColor = Color.FromArgb(alfa, 45, 255, 0);
                }
                else if (valToMax >= 0.18 && valToMax < 0.19)
                {
                    resultColor = Color.FromArgb(alfa, 53, 255, 0);
                }
                else if (valToMax >= 0.19 && valToMax < 0.20)
                {
                    resultColor = Color.FromArgb(alfa, 59, 255, 0);
                }
                else if (valToMax >= 0.20 && valToMax < 0.21)
                {
                    resultColor = Color.FromArgb(alfa, 64, 255, 0);
                }
                else if (valToMax >= 0.21 && valToMax < 0.22)
                {
                    resultColor = Color.FromArgb(alfa, 70, 255, 0);
                }
                else if (valToMax >= 0.22 && valToMax < 0.23)
                {
                    resultColor = Color.FromArgb(alfa, 76, 255, 0);
                }
                else if (valToMax >= 0.23 && valToMax < 0.24)
                {
                    resultColor = Color.FromArgb(alfa, 82, 255, 0);
                }
                else if (valToMax >= 0.24 && valToMax < 0.25)
                {
                    resultColor = Color.FromArgb(alfa, 89, 255, 0);
                }
                else if (valToMax >= 0.25 && valToMax < 0.26)
                {
                    resultColor = Color.FromArgb(alfa, 95, 255, 0);
                }
                else if (valToMax >= 0.26 && valToMax < 0.27)
                {
                    resultColor = Color.FromArgb(alfa, 102, 255, 0);
                }
                else if (valToMax >= 0.27 && valToMax < 0.28)
                {
                    resultColor = Color.FromArgb(alfa, 110, 255, 0);
                }
                else if (valToMax >= 0.28 && valToMax < 0.29)
                {
                    resultColor = Color.FromArgb(alfa, 116, 255, 0);
                }
                else if (valToMax >= 0.29 && valToMax < 0.30)
                {
                    resultColor = Color.FromArgb(alfa, 121, 255, 0);
                }
                else if (valToMax >= 0.30 && valToMax < 0.31)
                {
                    resultColor = Color.FromArgb(alfa, 128, 255, 0);
                }
                else if (valToMax >= 0.31 && valToMax < 0.32)
                {
                    resultColor = Color.FromArgb(alfa, 134, 255, 0);
                }
                else if (valToMax >= 0.32 && valToMax < 0.33)
                {
                    resultColor = Color.FromArgb(alfa, 140, 255, 0);
                }
                else if (valToMax >= 0.33 && valToMax < 0.34)
                {
                    resultColor = Color.FromArgb(alfa, 146, 255, 0);
                }
                else if (valToMax >= 0.34 && valToMax < 0.35)
                {
                    resultColor = Color.FromArgb(alfa, 152, 255, 0);
                }
                else if (valToMax >= 0.35 && valToMax < 0.36)
                {
                    resultColor = Color.FromArgb(alfa, 159, 255, 0);
                }
                else if (valToMax >= 0.36 && valToMax < 0.37)
                {
                    resultColor = Color.FromArgb(alfa, 165, 255, 0);
                }
                else if (valToMax >= 0.37 && valToMax < 0.38)
                {
                    resultColor = Color.FromArgb(alfa, 172, 255, 0);
                }
                else if (valToMax >= 0.38 && valToMax < 0.39)
                {
                    resultColor = Color.FromArgb(alfa, 179, 255, 0);
                }
                else if (valToMax >= 0.39 && valToMax < 0.40)
                {
                    resultColor = Color.FromArgb(186, 255, 0);
                }
                else if (valToMax >= 0.40 && valToMax < 0.41)
                {
                    resultColor = Color.FromArgb(alfa, 192, 255, 0);
                }
                else if (valToMax >= 0.41 && valToMax < 0.42)
                {
                    resultColor = Color.FromArgb(alfa, 199, 255, 0);
                }
                else if (valToMax >= 0.42 && valToMax < 0.43)
                {
                    resultColor = Color.FromArgb(alfa, 206, 255, 0);
                }
                else if (valToMax >= 0.43 && valToMax < 0.44)
                {
                    resultColor = Color.FromArgb(alfa, 213, 255, 0);
                }
                else if (valToMax >= 0.44 && valToMax < 0.45)
                {
                    resultColor = Color.FromArgb(alfa, 220, 255, 0);
                }
                else if (valToMax >= 0.45 && valToMax < 0.46)
                {
                    resultColor = Color.FromArgb(alfa, 216, 255, 0);
                }
                else if (valToMax >= 0.46 && valToMax < 0.47)
                {
                    resultColor = Color.FromArgb(alfa, 222, 255, 0);
                }
                else if (valToMax >= 0.47 && valToMax < 0.48)
                {
                    resultColor = Color.FromArgb(alfa, 229, 255, 0);
                }
                else if (valToMax >= 0.48 && valToMax < 0.49)
                {
                    resultColor = Color.FromArgb(alfa, 236, 255, 0);
                }
                else if (valToMax >= 0.49 && valToMax < 0.50)
                {
                    resultColor = Color.FromArgb(alfa, 243, 255, 0);
                }
                else if (valToMax >= 0.50 && valToMax < 0.51)
                {
                    resultColor = Color.FromArgb(alfa, 255, 255, 0);
                }
                else if (valToMax >= 0.51 && valToMax < 0.52)
                {
                    resultColor = Color.FromArgb(alfa, 255, 248, 0);
                }
                else if (valToMax >= 0.52 && valToMax < 0.53)
                {
                    resultColor = Color.FromArgb(alfa, 255, 241, 0);
                }
                else if (valToMax >= 0.53 && valToMax < 0.54)
                {
                    resultColor = Color.FromArgb(alfa, 255, 234, 0);
                }
                else if (valToMax >= 0.54 && valToMax < 0.55)
                {
                    resultColor = Color.FromArgb(alfa, 255, 228, 0);
                }
                else if (valToMax >= 0.55 && valToMax < 0.56)
                {
                    resultColor = Color.FromArgb(alfa, 255, 221, 0);
                }
                else if (valToMax >= 0.56 && valToMax < 0.57)
                {
                    resultColor = Color.FromArgb(alfa, 255, 214, 0);
                }
                else if (valToMax >= 0.57 && valToMax < 0.58)
                {
                    resultColor = Color.FromArgb(alfa, 255, 207, 0);
                }
                else if (valToMax >= 0.58 && valToMax < 0.59)
                {
                    resultColor = Color.FromArgb(alfa, 255, 200, 0);
                }
                else if (valToMax >= 0.59 && valToMax < 0.60)
                {
                    resultColor = Color.FromArgb(alfa, 255, 195, 0);
                }
                else if (valToMax >= 0.60 && valToMax < 0.61)
                {
                    resultColor = Color.FromArgb(alfa, 255, 190, 0);
                }
                else if (valToMax >= 0.61 && valToMax < 0.62)
                {
                    resultColor = Color.FromArgb(alfa, 255, 186, 0);
                }
                else if (valToMax >= 0.62 && valToMax < 0.63)
                {
                    resultColor = Color.FromArgb(alfa, 255, 180, 0);
                }
                else if (valToMax >= 0.63 && valToMax < 0.64)
                {
                    resultColor = Color.FromArgb(alfa, 255, 173, 0);
                }
                else if (valToMax >= 0.64 && valToMax < 0.65)
                {
                    resultColor = Color.FromArgb(alfa, 255, 166, 0);
                }
                else if (valToMax >= 0.65 && valToMax < 0.66)
                {
                    resultColor = Color.FromArgb(alfa, 255, 145, 0);
                }
                else if (valToMax >= 0.66 && valToMax < 0.67)
                {
                    resultColor = Color.FromArgb(alfa, 255, 138, 0);
                }
                else if (valToMax >= 0.67 && valToMax < 0.68)
                {
                    resultColor = Color.FromArgb(alfa, 255, 131, 0);
                }
                else if (valToMax >= 0.68 && valToMax < 0.69)
                {
                    resultColor = Color.FromArgb(alfa, 255, 124, 0);
                }
                else if (valToMax >= 0.69 && valToMax < 0.70)
                {
                    resultColor = Color.FromArgb(alfa, 255, 116, 0);
                }
                else if (valToMax >= 0.70 && valToMax < 0.71)
                {
                    resultColor = Color.FromArgb(alfa, 255, 128, 0);
                }
                else if (valToMax >= 0.71 && valToMax < 0.72)
                {
                    resultColor = Color.FromArgb(alfa, 255, 122, 0);
                }
                else if (valToMax >= 0.72 && valToMax < 0.73)
                {
                    resultColor = Color.FromArgb(alfa, 255, 116, 0);
                }
                else if (valToMax >= 0.73 && valToMax < 0.74)
                {
                    resultColor = Color.FromArgb(alfa, 255, 109, 0);
                }
                else if (valToMax >= 0.74 && valToMax < 0.75)
                {
                    resultColor = Color.FromArgb(alfa, 255, 102, 0);
                }
                else if (valToMax >= 0.75 && valToMax < 0.76)
                {
                    resultColor = Color.FromArgb(alfa, 255, 96, 0);
                }
                else if (valToMax >= 0.76 && valToMax < 0.77)
                {
                    resultColor = Color.FromArgb(alfa, 255, 89, 0);
                }
                else if (valToMax >= 0.77 && valToMax < 0.78)
                {
                    resultColor = Color.FromArgb(alfa, 255, 82, 0);
                }
                else if (valToMax >= 0.78 && valToMax < 0.79)
                {
                    resultColor = Color.FromArgb(alfa, 255, 75, 0);
                }
                else if (valToMax >= 0.79 && valToMax < 0.80)
                {
                    resultColor = Color.FromArgb(alfa, 255, 69, 0);
                }
                else if (valToMax >= 0.80 && valToMax < 0.81)
                {
                    resultColor = Color.FromArgb(alfa, 255, 64, 0);
                }
                else if (valToMax >= 0.81 && valToMax < 0.82)
                {
                    resultColor = Color.FromArgb(alfa, 255, 58, 0);
                }
                else if (valToMax >= 0.82 && valToMax < 0.83)
                {
                    resultColor = Color.FromArgb(alfa, 255, 51, 0);
                }
                else if (valToMax >= 0.83 && valToMax < 0.84)
                {
                    resultColor = Color.FromArgb(alfa, 255, 45, 0);
                }
                else if (valToMax >= 0.84 && valToMax < 0.85)
                {
                    resultColor = Color.FromArgb(alfa, 255, 38, 0);
                }
                else if (valToMax >= 0.85 && valToMax < 0.86)
                {
                    resultColor = Color.FromArgb(alfa, 255, 31, 0);
                }
                else if (valToMax >= 0.86 && valToMax < 0.87)
                {
                    resultColor = Color.FromArgb(alfa, 255, 24, 0);
                }
                else if (valToMax >= 0.87 && valToMax < 0.88)
                {
                    resultColor = Color.FromArgb(alfa, 255, 16, 0);
                }
                else if (valToMax >= 0.88 && valToMax < 0.89)
                {
                    resultColor = Color.FromArgb(alfa, 255, 8, 0);
                }
                else if (valToMax >= 0.89 && valToMax < 0.90)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 0);
                }
                else if (valToMax >= 0.90 && valToMax < 0.91)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 25);
                }
                else if (valToMax >= 0.91 && valToMax < 0.92)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 50);
                }
                else if (valToMax >= 0.92 && valToMax < 0.93)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 75);
                }
                else if (valToMax >= 0.93 && valToMax < 0.94)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 100);
                }
                else if (valToMax >= 0.94 && valToMax < 0.95)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 125);
                }
                else if (valToMax >= 0.95 && valToMax < 0.96)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 150);
                }
                else if (valToMax >= 0.96 && valToMax < 0.97)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 175);
                }
                else if (valToMax >= 0.97 && valToMax < 0.98)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 200);
                }
                else if (valToMax >= 0.98 && valToMax < 0.99)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 225);
                }
                else if (valToMax >= 0.99 && valToMax < 1.0)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 255);
                }
                else
                {
                    resultColor = Color.FromArgb(alfa, 0, 0, 0);
                    MessageBox.Show(resultColor.ToString() + "\n" + valToMax.ToString());
                }
                return resultColor;
            }

Problem polega na tym, że mimo wartości ujemnej (spełniającej pierwszą instrukcję warunkową) wykonuje się także zawartość ostatniego else i nadpisuje rezultat pierwszego if. Jak to naprawić? Nie chcę usuwać ostatniego else, chcę mieć pewność, że obsługuję wszystkie wartości, a więc, że else się nie wykonuje.

2
if (valToMax < 0.0 || valToMax >= 1.0)
{
    ....
}
if (valToMax >= 0.0 && valToMax < 0.01)
{
    ....
}

Zauważyłeś, że to są 2 różne ify? Dodaj else przed drugim ifem.

A najlepiej to przemyśl jeszcze raz cały kod, bo takie coś eufemistycznie ujmując jest słabe.

2
if (valToMax < 0.0 || valToMax >= 1.0)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 255);
                    MessageBox.Show(valToMax.ToString());
                }
                if (valToMax >= 0.0 && valToMax < 0.01)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 255);
                }

Drugim if to powinien byc else if.

Anyway... bardziej adekwatnie, jak chcesz jakas jakosc miec, to:
user image

0

<quote="1086011">

if (valToMax < 0.0 || valToMax >= 1.0)
{
    ....
}
if (valToMax >= 0.0 && valToMax < 0.01)
{
    ....
}

Zauważyłeś, że to są 2 różne ify? Dodaj else przed drugim ifem.[/quote]
Dzięki wielkie, taki prosty błąd.

twonek napisał(a):

A najlepiej to przemyśl jeszcze raz cały kod, bo takie coś eufemistycznie ujmując jest słabe.

Zależy mi na płynnym przechodzeniu kolorów i to było najprostszym, choć na pewno nie najlepszym, rozwiązaniem. Mógłbym zastosować gradient, ale nie czuję się w nim dobrze.

0

Użyj słownika Dictionary<Tuple<double, double>, Color>> (tylko ładnie go jakoś opakuj w klasy), bo tego się czytać nie da...

0

przy 0.40 brakuje zmiennej alfa :-).

a wykryłem to skryptem PHP zapuszczonym w Notepadzie++ ( patrz temat traktujacy o jezykach skryptowych w Notepadzie: http://4programmers.net/Forum/C_i_.NET/242329-c_i_php_jako_jezyki_skryptowe_w_notepad++ ), który użyłem do parsowania twojego kodu z użyciem WR aby nie przepisywać żmudnie linijek.
Tekst skryptu parsującego :

 
<?php
$txt = <<<EOT
if (valToMax < 0.0 || valToMax >= 1.0)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 255);
                    MessageBox.Show(valToMax.ToString());
                }
                if (valToMax >= 0.0 && valToMax < 0.01)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 255);
                }
                else if (valToMax >= 0.01 && valToMax < 0.02)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 230);
                }
                else if (valToMax >= 0.02 && valToMax < 0.03)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 205);
                }
                else if (valToMax >= 0.03 && valToMax < 0.04)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 180);
                }
                else if (valToMax >= 0.04 && valToMax < 0.05)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 155);
                }
                else if (valToMax >= 0.05 && valToMax < 0.06)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 130);
                }
                else if (valToMax >= 0.06 && valToMax < 0.07)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 105);
                }
                else if (valToMax >= 0.07 && valToMax < 0.08)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 80);
                }
                else if (valToMax >= 0.08 && valToMax < 0.09)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 50);
                }
                else if (valToMax >= 0.09 && valToMax < 0.10)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 25);
                }
                else if (valToMax >= 0.10 && valToMax < 0.11)
                {
                    resultColor = Color.FromArgb(alfa, 0, 255, 0);
                }
                else if (valToMax >= 0.11 && valToMax < 0.12)
                {
                    resultColor = Color.FromArgb(alfa, 6, 255, 0);
                }
                else if (valToMax >= 0.12 && valToMax < 0.13)
                {
                    resultColor = Color.FromArgb(alfa, 13, 255, 0);
                }
                else if (valToMax >= 0.13 && valToMax < 0.14)
                {
                    resultColor = Color.FromArgb(alfa, 20, 255, 0);
                }
                else if (valToMax >= 0.14 && valToMax < 0.15)
                {
                    resultColor = Color.FromArgb(alfa, 26, 255, 0);
                }
                else if (valToMax >= 0.15 && valToMax < 0.16)
                {
                    resultColor = Color.FromArgb(alfa, 32, 255, 0);
                }
                else if (valToMax >= 0.16 && valToMax < 0.17)
                {
                    resultColor = Color.FromArgb(alfa, 40, 255, 0);
                }
                else if (valToMax >= 0.17 && valToMax < 0.18)
                {
                    resultColor = Color.FromArgb(alfa, 45, 255, 0);
                }
                else if (valToMax >= 0.18 && valToMax < 0.19)
                {
                    resultColor = Color.FromArgb(alfa, 53, 255, 0);
                }
                else if (valToMax >= 0.19 && valToMax < 0.20)
                {
                    resultColor = Color.FromArgb(alfa, 59, 255, 0);
                }
                else if (valToMax >= 0.20 && valToMax < 0.21)
                {
                    resultColor = Color.FromArgb(alfa, 64, 255, 0);
                }
                else if (valToMax >= 0.21 && valToMax < 0.22)
                {
                    resultColor = Color.FromArgb(alfa, 70, 255, 0);
                }
                else if (valToMax >= 0.22 && valToMax < 0.23)
                {
                    resultColor = Color.FromArgb(alfa, 76, 255, 0);
                }
                else if (valToMax >= 0.23 && valToMax < 0.24)
                {
                    resultColor = Color.FromArgb(alfa, 82, 255, 0);
                }
                else if (valToMax >= 0.24 && valToMax < 0.25)
                {
                    resultColor = Color.FromArgb(alfa, 89, 255, 0);
                }
                else if (valToMax >= 0.25 && valToMax < 0.26)
                {
                    resultColor = Color.FromArgb(alfa, 95, 255, 0);
                }
                else if (valToMax >= 0.26 && valToMax < 0.27)
                {
                    resultColor = Color.FromArgb(alfa, 102, 255, 0);
                }
                else if (valToMax >= 0.27 && valToMax < 0.28)
                {
                    resultColor = Color.FromArgb(alfa, 110, 255, 0);
                }
                else if (valToMax >= 0.28 && valToMax < 0.29)
                {
                    resultColor = Color.FromArgb(alfa, 116, 255, 0);
                }
                else if (valToMax >= 0.29 && valToMax < 0.30)
                {
                    resultColor = Color.FromArgb(alfa, 121, 255, 0);
                }
                else if (valToMax >= 0.30 && valToMax < 0.31)
                {
                    resultColor = Color.FromArgb(alfa, 128, 255, 0);
                }
                else if (valToMax >= 0.31 && valToMax < 0.32)
                {
                    resultColor = Color.FromArgb(alfa, 134, 255, 0);
                }
                else if (valToMax >= 0.32 && valToMax < 0.33)
                {
                    resultColor = Color.FromArgb(alfa, 140, 255, 0);
                }
                else if (valToMax >= 0.33 && valToMax < 0.34)
                {
                    resultColor = Color.FromArgb(alfa, 146, 255, 0);
                }
                else if (valToMax >= 0.34 && valToMax < 0.35)
                {
                    resultColor = Color.FromArgb(alfa, 152, 255, 0);
                }
                else if (valToMax >= 0.35 && valToMax < 0.36)
                {
                    resultColor = Color.FromArgb(alfa, 159, 255, 0);
                }
                else if (valToMax >= 0.36 && valToMax < 0.37)
                {
                    resultColor = Color.FromArgb(alfa, 165, 255, 0);
                }
                else if (valToMax >= 0.37 && valToMax < 0.38)
                {
                    resultColor = Color.FromArgb(alfa, 172, 255, 0);
                }
                else if (valToMax >= 0.38 && valToMax < 0.39)
                {
                    resultColor = Color.FromArgb(alfa, 179, 255, 0);
                }
                else if (valToMax >= 0.39 && valToMax < 0.40)
                {
                    resultColor = Color.FromArgb(alfa, 186, 255, 0);
                }
                else if (valToMax >= 0.40 && valToMax < 0.41)
                {
                    resultColor = Color.FromArgb(alfa, 192, 255, 0);
                }
                else if (valToMax >= 0.41 && valToMax < 0.42)
                {
                    resultColor = Color.FromArgb(alfa, 199, 255, 0);
                }
                else if (valToMax >= 0.42 && valToMax < 0.43)
                {
                    resultColor = Color.FromArgb(alfa, 206, 255, 0);
                }
                else if (valToMax >= 0.43 && valToMax < 0.44)
                {
                    resultColor = Color.FromArgb(alfa, 213, 255, 0);
                }
                else if (valToMax >= 0.44 && valToMax < 0.45)
                {
                    resultColor = Color.FromArgb(alfa, 220, 255, 0);
                }
                else if (valToMax >= 0.45 && valToMax < 0.46)
                {
                    resultColor = Color.FromArgb(alfa, 216, 255, 0);
                }
                else if (valToMax >= 0.46 && valToMax < 0.47)
                {
                    resultColor = Color.FromArgb(alfa, 222, 255, 0);
                }
                else if (valToMax >= 0.47 && valToMax < 0.48)
                {
                    resultColor = Color.FromArgb(alfa, 229, 255, 0);
                }
                else if (valToMax >= 0.48 && valToMax < 0.49)
                {
                    resultColor = Color.FromArgb(alfa, 236, 255, 0);
                }
                else if (valToMax >= 0.49 && valToMax < 0.50)
                {
                    resultColor = Color.FromArgb(alfa, 243, 255, 0);
                }
                else if (valToMax >= 0.50 && valToMax < 0.51)
                {
                    resultColor = Color.FromArgb(alfa, 255, 255, 0);
                }
                else if (valToMax >= 0.51 && valToMax < 0.52)
                {
                    resultColor = Color.FromArgb(alfa, 255, 248, 0);
                }
                else if (valToMax >= 0.52 && valToMax < 0.53)
                {
                    resultColor = Color.FromArgb(alfa, 255, 241, 0);
                }
                else if (valToMax >= 0.53 && valToMax < 0.54)
                {
                    resultColor = Color.FromArgb(alfa, 255, 234, 0);
                }
                else if (valToMax >= 0.54 && valToMax < 0.55)
                {
                    resultColor = Color.FromArgb(alfa, 255, 228, 0);
                }
                else if (valToMax >= 0.55 && valToMax < 0.56)
                {
                    resultColor = Color.FromArgb(alfa, 255, 221, 0);
                }
                else if (valToMax >= 0.56 && valToMax < 0.57)
                {
                    resultColor = Color.FromArgb(alfa, 255, 214, 0);
                }
                else if (valToMax >= 0.57 && valToMax < 0.58)
                {
                    resultColor = Color.FromArgb(alfa, 255, 207, 0);
                }
                else if (valToMax >= 0.58 && valToMax < 0.59)
                {
                    resultColor = Color.FromArgb(alfa, 255, 200, 0);
                }
                else if (valToMax >= 0.59 && valToMax < 0.60)
                {
                    resultColor = Color.FromArgb(alfa, 255, 195, 0);
                }
                else if (valToMax >= 0.60 && valToMax < 0.61)
                {
                    resultColor = Color.FromArgb(alfa, 255, 190, 0);
                }
                else if (valToMax >= 0.61 && valToMax < 0.62)
                {
                    resultColor = Color.FromArgb(alfa, 255, 186, 0);
                }
                else if (valToMax >= 0.62 && valToMax < 0.63)
                {
                    resultColor = Color.FromArgb(alfa, 255, 180, 0);
                }
                else if (valToMax >= 0.63 && valToMax < 0.64)
                {
                    resultColor = Color.FromArgb(alfa, 255, 173, 0);
                }
                else if (valToMax >= 0.64 && valToMax < 0.65)
                {
                    resultColor = Color.FromArgb(alfa, 255, 166, 0);
                }
                else if (valToMax >= 0.65 && valToMax < 0.66)
                {
                    resultColor = Color.FromArgb(alfa, 255, 145, 0);
                }
                else if (valToMax >= 0.66 && valToMax < 0.67)
                {
                    resultColor = Color.FromArgb(alfa, 255, 138, 0);
                }
                else if (valToMax >= 0.67 && valToMax < 0.68)
                {
                    resultColor = Color.FromArgb(alfa, 255, 131, 0);
                }
                else if (valToMax >= 0.68 && valToMax < 0.69)
                {
                    resultColor = Color.FromArgb(alfa, 255, 124, 0);
                }
                else if (valToMax >= 0.69 && valToMax < 0.70)
                {
                    resultColor = Color.FromArgb(alfa, 255, 116, 0);
                }
                else if (valToMax >= 0.70 && valToMax < 0.71)
                {
                    resultColor = Color.FromArgb(alfa, 255, 128, 0);
                }
                else if (valToMax >= 0.71 && valToMax < 0.72)
                {
                    resultColor = Color.FromArgb(alfa, 255, 122, 0);
                }
                else if (valToMax >= 0.72 && valToMax < 0.73)
                {
                    resultColor = Color.FromArgb(alfa, 255, 116, 0);
                }
                else if (valToMax >= 0.73 && valToMax < 0.74)
                {
                    resultColor = Color.FromArgb(alfa, 255, 109, 0);
                }
                else if (valToMax >= 0.74 && valToMax < 0.75)
                {
                    resultColor = Color.FromArgb(alfa, 255, 102, 0);
                }
                else if (valToMax >= 0.75 && valToMax < 0.76)
                {
                    resultColor = Color.FromArgb(alfa, 255, 96, 0);
                }
                else if (valToMax >= 0.76 && valToMax < 0.77)
                {
                    resultColor = Color.FromArgb(alfa, 255, 89, 0);
                }
                else if (valToMax >= 0.77 && valToMax < 0.78)
                {
                    resultColor = Color.FromArgb(alfa, 255, 82, 0);
                }
                else if (valToMax >= 0.78 && valToMax < 0.79)
                {
                    resultColor = Color.FromArgb(alfa, 255, 75, 0);
                }
                else if (valToMax >= 0.79 && valToMax < 0.80)
                {
                    resultColor = Color.FromArgb(alfa, 255, 69, 0);
                }
                else if (valToMax >= 0.80 && valToMax < 0.81)
                {
                    resultColor = Color.FromArgb(alfa, 255, 64, 0);
                }
                else if (valToMax >= 0.81 && valToMax < 0.82)
                {
                    resultColor = Color.FromArgb(alfa, 255, 58, 0);
                }
                else if (valToMax >= 0.82 && valToMax < 0.83)
                {
                    resultColor = Color.FromArgb(alfa, 255, 51, 0);
                }
                else if (valToMax >= 0.83 && valToMax < 0.84)
                {
                    resultColor = Color.FromArgb(alfa, 255, 45, 0);
                }
                else if (valToMax >= 0.84 && valToMax < 0.85)
                {
                    resultColor = Color.FromArgb(alfa, 255, 38, 0);
                }
                else if (valToMax >= 0.85 && valToMax < 0.86)
                {
                    resultColor = Color.FromArgb(alfa, 255, 31, 0);
                }
                else if (valToMax >= 0.86 && valToMax < 0.87)
                {
                    resultColor = Color.FromArgb(alfa, 255, 24, 0);
                }
                else if (valToMax >= 0.87 && valToMax < 0.88)
                {
                    resultColor = Color.FromArgb(alfa, 255, 16, 0);
                }
                else if (valToMax >= 0.88 && valToMax < 0.89)
                {
                    resultColor = Color.FromArgb(alfa, 255, 8, 0);
                }
                else if (valToMax >= 0.89 && valToMax < 0.90)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 0);
                }
                else if (valToMax >= 0.90 && valToMax < 0.91)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 25);
                }
                else if (valToMax >= 0.91 && valToMax < 0.92)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 50);
                }
                else if (valToMax >= 0.92 && valToMax < 0.93)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 75);
                }
                else if (valToMax >= 0.93 && valToMax < 0.94)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 100);
                }
                else if (valToMax >= 0.94 && valToMax < 0.95)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 125);
                }
                else if (valToMax >= 0.95 && valToMax < 0.96)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 150);
                }
                else if (valToMax >= 0.96 && valToMax < 0.97)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 175);
                }
                else if (valToMax >= 0.97 && valToMax < 0.98)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 200);
                }
                else if (valToMax >= 0.98 && valToMax < 0.99)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 225);
                }
                else if (valToMax >= 0.99 && valToMax < 1.0)
                {
                    resultColor = Color.FromArgb(alfa, 255, 0, 255);
                }
EOT;
preg_match_all("/valToMax\s+<\s+(?P<valToMax>[0-9.]+).*?\(alfa,\s?(?P<R>[0-9]+?),\s?(?P<G>[0-9]+?),\s?(?P<B>[0-9]+?)\)/si",$txt,$capture);
echo "List<valToMaxClass> valToMaxList = new List<valToMaxClass>();\n";
for ($j=0;$j<count($capture[0]);$j++) {
    echo "valToMaxList.Add(new valToMaxClass(",$capture["valToMax"][$j],",",$capture["R"][$j],",",$capture["G"][$j],",",$capture["B"][$j],");\n";
}

skrypt wygenerował Listę struktury o budowie :
double valToMax;
int R;
int G;
int B;

jakbyś nie miał PHP lub nie chciał instalować skryptów PHP w Notepadzie zamieszczam wynik generacji :

List<valToMaxClass> valToMaxList = new List<valToMaxClass>();
valToMaxList.Add(new valToMaxClass(0.0,0,255,255);
valToMaxList.Add(new valToMaxClass(0.01,0,255,255);
valToMaxList.Add(new valToMaxClass(0.02,0,255,230);
valToMaxList.Add(new valToMaxClass(0.03,0,255,205);
valToMaxList.Add(new valToMaxClass(0.04,0,255,180);
valToMaxList.Add(new valToMaxClass(0.05,0,255,155);
valToMaxList.Add(new valToMaxClass(0.06,0,255,130);
valToMaxList.Add(new valToMaxClass(0.07,0,255,105);
valToMaxList.Add(new valToMaxClass(0.08,0,255,80);
valToMaxList.Add(new valToMaxClass(0.09,0,255,50);
valToMaxList.Add(new valToMaxClass(0.10,0,255,25);
valToMaxList.Add(new valToMaxClass(0.11,0,255,0);
valToMaxList.Add(new valToMaxClass(0.12,6,255,0);
valToMaxList.Add(new valToMaxClass(0.13,13,255,0);
valToMaxList.Add(new valToMaxClass(0.14,20,255,0);
valToMaxList.Add(new valToMaxClass(0.15,26,255,0);
valToMaxList.Add(new valToMaxClass(0.16,32,255,0);
valToMaxList.Add(new valToMaxClass(0.17,40,255,0);
valToMaxList.Add(new valToMaxClass(0.18,45,255,0);
valToMaxList.Add(new valToMaxClass(0.19,53,255,0);
valToMaxList.Add(new valToMaxClass(0.20,59,255,0);
valToMaxList.Add(new valToMaxClass(0.21,64,255,0);
valToMaxList.Add(new valToMaxClass(0.22,70,255,0);
valToMaxList.Add(new valToMaxClass(0.23,76,255,0);
valToMaxList.Add(new valToMaxClass(0.24,82,255,0);
valToMaxList.Add(new valToMaxClass(0.25,89,255,0);
valToMaxList.Add(new valToMaxClass(0.26,95,255,0);
valToMaxList.Add(new valToMaxClass(0.27,102,255,0);
valToMaxList.Add(new valToMaxClass(0.28,110,255,0);
valToMaxList.Add(new valToMaxClass(0.29,116,255,0);
valToMaxList.Add(new valToMaxClass(0.30,121,255,0);
valToMaxList.Add(new valToMaxClass(0.31,128,255,0);
valToMaxList.Add(new valToMaxClass(0.32,134,255,0);
valToMaxList.Add(new valToMaxClass(0.33,140,255,0);
valToMaxList.Add(new valToMaxClass(0.34,146,255,0);
valToMaxList.Add(new valToMaxClass(0.35,152,255,0);
valToMaxList.Add(new valToMaxClass(0.36,159,255,0);
valToMaxList.Add(new valToMaxClass(0.37,165,255,0);
valToMaxList.Add(new valToMaxClass(0.38,172,255,0);
valToMaxList.Add(new valToMaxClass(0.39,179,255,0);
valToMaxList.Add(new valToMaxClass(0.40,186,255,0);
valToMaxList.Add(new valToMaxClass(0.41,192,255,0);
valToMaxList.Add(new valToMaxClass(0.42,199,255,0);
valToMaxList.Add(new valToMaxClass(0.43,206,255,0);
valToMaxList.Add(new valToMaxClass(0.44,213,255,0);
valToMaxList.Add(new valToMaxClass(0.45,220,255,0);
valToMaxList.Add(new valToMaxClass(0.46,216,255,0);
valToMaxList.Add(new valToMaxClass(0.47,222,255,0);
valToMaxList.Add(new valToMaxClass(0.48,229,255,0);
valToMaxList.Add(new valToMaxClass(0.49,236,255,0);
valToMaxList.Add(new valToMaxClass(0.50,243,255,0);
valToMaxList.Add(new valToMaxClass(0.51,255,255,0);
valToMaxList.Add(new valToMaxClass(0.52,255,248,0);
valToMaxList.Add(new valToMaxClass(0.53,255,241,0);
valToMaxList.Add(new valToMaxClass(0.54,255,234,0);
valToMaxList.Add(new valToMaxClass(0.55,255,228,0);
valToMaxList.Add(new valToMaxClass(0.56,255,221,0);
valToMaxList.Add(new valToMaxClass(0.57,255,214,0);
valToMaxList.Add(new valToMaxClass(0.58,255,207,0);
valToMaxList.Add(new valToMaxClass(0.59,255,200,0);
valToMaxList.Add(new valToMaxClass(0.60,255,195,0);
valToMaxList.Add(new valToMaxClass(0.61,255,190,0);
valToMaxList.Add(new valToMaxClass(0.62,255,186,0);
valToMaxList.Add(new valToMaxClass(0.63,255,180,0);
valToMaxList.Add(new valToMaxClass(0.64,255,173,0);
valToMaxList.Add(new valToMaxClass(0.65,255,166,0);
valToMaxList.Add(new valToMaxClass(0.66,255,145,0);
valToMaxList.Add(new valToMaxClass(0.67,255,138,0);
valToMaxList.Add(new valToMaxClass(0.68,255,131,0);
valToMaxList.Add(new valToMaxClass(0.69,255,124,0);
valToMaxList.Add(new valToMaxClass(0.70,255,116,0);
valToMaxList.Add(new valToMaxClass(0.71,255,128,0);
valToMaxList.Add(new valToMaxClass(0.72,255,122,0);
valToMaxList.Add(new valToMaxClass(0.73,255,116,0);
valToMaxList.Add(new valToMaxClass(0.74,255,109,0);
valToMaxList.Add(new valToMaxClass(0.75,255,102,0);
valToMaxList.Add(new valToMaxClass(0.76,255,96,0);
valToMaxList.Add(new valToMaxClass(0.77,255,89,0);
valToMaxList.Add(new valToMaxClass(0.78,255,82,0);
valToMaxList.Add(new valToMaxClass(0.79,255,75,0);
valToMaxList.Add(new valToMaxClass(0.80,255,69,0);
valToMaxList.Add(new valToMaxClass(0.81,255,64,0);
valToMaxList.Add(new valToMaxClass(0.82,255,58,0);
valToMaxList.Add(new valToMaxClass(0.83,255,51,0);
valToMaxList.Add(new valToMaxClass(0.84,255,45,0);
valToMaxList.Add(new valToMaxClass(0.85,255,38,0);
valToMaxList.Add(new valToMaxClass(0.86,255,31,0);
valToMaxList.Add(new valToMaxClass(0.87,255,24,0);
valToMaxList.Add(new valToMaxClass(0.88,255,16,0);
valToMaxList.Add(new valToMaxClass(0.89,255,8,0);
valToMaxList.Add(new valToMaxClass(0.90,255,0,0);
valToMaxList.Add(new valToMaxClass(0.91,255,0,25);
valToMaxList.Add(new valToMaxClass(0.92,255,0,50);
valToMaxList.Add(new valToMaxClass(0.93,255,0,75);
valToMaxList.Add(new valToMaxClass(0.94,255,0,100);
valToMaxList.Add(new valToMaxClass(0.95,255,0,125);
valToMaxList.Add(new valToMaxClass(0.96,255,0,150);
valToMaxList.Add(new valToMaxClass(0.97,255,0,175);
valToMaxList.Add(new valToMaxClass(0.98,255,0,200);
valToMaxList.Add(new valToMaxClass(0.99,255,0,225);
valToMaxList.Add(new valToMaxClass(1.0,255,0,255);
valToMaxList.Add(new valToMaxClass(MAXDBL,0,255,255);

moze takie rozwiązanie będzie OK ?. Szukasz na liscie pozycji zawierającej wartość nie większą i wywołujesz funkcję z parametrami RGB. Jeżeli szukanie pozycji ostatniej nie wiekszej będzie kłopotem to dostaw do struktury drugą wartość aby stworzyć zakres. Tego juz nie sprawdzałem ale myslę ze zadziała :-).

pozdrawiam AK
Lubię takie zagadki :-).

Nie byłbym sobą żeby nie sprawdzić :-).
Napisałem skrypt w Notepadzie testujacy zachowanie sie takiego systemu :

 using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
using System.Linq;

class Script
{
    static public List<valToMaxClass> valToMaxList;
    static public void createList() {
            valToMaxList = new List<valToMaxClass>();
            valToMaxList.Add(new valToMaxClass(double.MinValue,0.0,0,255,255));
            valToMaxList.Add(new valToMaxClass(0.00,0.01,0,255,255));
            valToMaxList.Add(new valToMaxClass(0.01,0.02,0,255,230));
            valToMaxList.Add(new valToMaxClass(0.02,0.03,0,255,205));
            valToMaxList.Add(new valToMaxClass(0.03,0.04,0,255,180));
            valToMaxList.Add(new valToMaxClass(0.04,0.05,0,255,155));
            valToMaxList.Add(new valToMaxClass(0.05,0.06,0,255,130));
            valToMaxList.Add(new valToMaxClass(0.06,0.07,0,255,105));
            valToMaxList.Add(new valToMaxClass(0.07,0.08,0,255,80));
            valToMaxList.Add(new valToMaxClass(0.08,0.09,0,255,50));
            valToMaxList.Add(new valToMaxClass(0.09,0.10,0,255,25));
            valToMaxList.Add(new valToMaxClass(0.10,0.11,0,255,0));
            valToMaxList.Add(new valToMaxClass(0.11,0.12,6,255,0));
            valToMaxList.Add(new valToMaxClass(0.12,0.13,13,255,0));
            valToMaxList.Add(new valToMaxClass(0.13,0.14,20,255,0));
            valToMaxList.Add(new valToMaxClass(0.14,0.15,26,255,0));
            valToMaxList.Add(new valToMaxClass(0.15,0.16,32,255,0));
            valToMaxList.Add(new valToMaxClass(0.16,0.17,40,255,0));
            valToMaxList.Add(new valToMaxClass(0.17,0.18,45,255,0));
            valToMaxList.Add(new valToMaxClass(0.18,0.19,53,255,0));
            valToMaxList.Add(new valToMaxClass(0.19,0.20,59,255,0));
            valToMaxList.Add(new valToMaxClass(0.20,0.21,64,255,0));
            valToMaxList.Add(new valToMaxClass(0.21,0.22,70,255,0));
            valToMaxList.Add(new valToMaxClass(0.22,0.23,76,255,0));
            valToMaxList.Add(new valToMaxClass(0.23,0.24,82,255,0));
            valToMaxList.Add(new valToMaxClass(0.24,0.25,89,255,0));
            valToMaxList.Add(new valToMaxClass(0.25,0.26,95,255,0));
            valToMaxList.Add(new valToMaxClass(0.26,0.27,102,255,0));
            valToMaxList.Add(new valToMaxClass(0.27,0.28,110,255,0));
            valToMaxList.Add(new valToMaxClass(0.28,0.29,116,255,0));
            valToMaxList.Add(new valToMaxClass(0.29,0.30,121,255,0));
            valToMaxList.Add(new valToMaxClass(0.30,0.31,128,255,0));
            valToMaxList.Add(new valToMaxClass(0.31,0.32,134,255,0));
            valToMaxList.Add(new valToMaxClass(0.32,0.33,140,255,0));
            valToMaxList.Add(new valToMaxClass(0.33,0.34,146,255,0));
            valToMaxList.Add(new valToMaxClass(0.34,0.35,152,255,0));
            valToMaxList.Add(new valToMaxClass(0.35,0.36,159,255,0));
            valToMaxList.Add(new valToMaxClass(0.36,0.37,165,255,0));
            valToMaxList.Add(new valToMaxClass(0.37,0.38,172,255,0));
            valToMaxList.Add(new valToMaxClass(0.38,0.39,179,255,0));
            valToMaxList.Add(new valToMaxClass(0.39,0.40,186,255,0));
            valToMaxList.Add(new valToMaxClass(0.40,0.41,192,255,0));
            valToMaxList.Add(new valToMaxClass(0.41,0.42,199,255,0));
            valToMaxList.Add(new valToMaxClass(0.42,0.43,206,255,0));
            valToMaxList.Add(new valToMaxClass(0.43,0.44,213,255,0));
            valToMaxList.Add(new valToMaxClass(0.44,0.45,220,255,0));
            valToMaxList.Add(new valToMaxClass(0.45,0.46,216,255,0));
            valToMaxList.Add(new valToMaxClass(0.46,0.47,222,255,0));
            valToMaxList.Add(new valToMaxClass(0.47,0.48,229,255,0));
            valToMaxList.Add(new valToMaxClass(0.48,0.49,236,255,0));
            valToMaxList.Add(new valToMaxClass(0.49,0.50,243,255,0));
            valToMaxList.Add(new valToMaxClass(0.50,0.51,255,255,0));
            valToMaxList.Add(new valToMaxClass(0.51,0.52,255,248,0));
            valToMaxList.Add(new valToMaxClass(0.52,0.53,255,241,0));
            valToMaxList.Add(new valToMaxClass(0.53,0.54,255,234,0));
            valToMaxList.Add(new valToMaxClass(0.54,0.55,255,228,0));
            valToMaxList.Add(new valToMaxClass(0.55,0.56,255,221,0));
            valToMaxList.Add(new valToMaxClass(0.56,0.57,255,214,0));
            valToMaxList.Add(new valToMaxClass(0.57,0.58,255,207,0));
            valToMaxList.Add(new valToMaxClass(0.58,0.59,255,200,0));
            valToMaxList.Add(new valToMaxClass(0.59,0.60,255,195,0));
            valToMaxList.Add(new valToMaxClass(0.60,0.61,255,190,0));
            valToMaxList.Add(new valToMaxClass(0.61,0.62,255,186,0));
            valToMaxList.Add(new valToMaxClass(0.62,0.63,255,180,0));
            valToMaxList.Add(new valToMaxClass(0.63,0.64,255,173,0));
            valToMaxList.Add(new valToMaxClass(0.64,0.65,255,166,0));
            valToMaxList.Add(new valToMaxClass(0.65,0.66,255,145,0));
            valToMaxList.Add(new valToMaxClass(0.66,0.67,255,138,0));
            valToMaxList.Add(new valToMaxClass(0.67,0.68,255,131,0));
            valToMaxList.Add(new valToMaxClass(0.68,0.69,255,124,0));
            valToMaxList.Add(new valToMaxClass(0.69,0.70,255,116,0));
            valToMaxList.Add(new valToMaxClass(0.70,0.71,255,128,0));
            valToMaxList.Add(new valToMaxClass(0.71,0.72,255,122,0));
            valToMaxList.Add(new valToMaxClass(0.72,0.73,255,116,0));
            valToMaxList.Add(new valToMaxClass(0.73,0.74,255,109,0));
            valToMaxList.Add(new valToMaxClass(0.74,0.75,255,102,0));
            valToMaxList.Add(new valToMaxClass(0.75,0.76,255,96,0));
            valToMaxList.Add(new valToMaxClass(0.76,0.77,255,89,0));
            valToMaxList.Add(new valToMaxClass(0.77,0.78,255,82,0));
            valToMaxList.Add(new valToMaxClass(0.78,0.79,255,75,0));
            valToMaxList.Add(new valToMaxClass(0.79,0.80,255,69,0));
            valToMaxList.Add(new valToMaxClass(0.80,0.81,255,64,0));
            valToMaxList.Add(new valToMaxClass(0.81,0.82,255,58,0));
            valToMaxList.Add(new valToMaxClass(0.82,0.83,255,51,0));
            valToMaxList.Add(new valToMaxClass(0.83,0.84,255,45,0));
            valToMaxList.Add(new valToMaxClass(0.84,0.85,255,38,0));
            valToMaxList.Add(new valToMaxClass(0.85,0.86,255,31,0));
            valToMaxList.Add(new valToMaxClass(0.86,0.87,255,24,0));
            valToMaxList.Add(new valToMaxClass(0.87,0.88,255,16,0));
            valToMaxList.Add(new valToMaxClass(0.88,0.89,255,8,0));
            valToMaxList.Add(new valToMaxClass(0.89,0.90,255,0,0));
            valToMaxList.Add(new valToMaxClass(0.90,0.91,255,0,25));
            valToMaxList.Add(new valToMaxClass(0.91,0.92,255,0,50));
            valToMaxList.Add(new valToMaxClass(0.92,0.93,255,0,75));
            valToMaxList.Add(new valToMaxClass(0.93,0.94,255,0,100));
            valToMaxList.Add(new valToMaxClass(0.94,0.95,255,0,125));
            valToMaxList.Add(new valToMaxClass(0.95,0.96,255,0,150));
            valToMaxList.Add(new valToMaxClass(0.96,0.97,255,0,175));
            valToMaxList.Add(new valToMaxClass(0.97,0.98,255,0,200));
            valToMaxList.Add(new valToMaxClass(0.98,0.99,255,0,225));
            valToMaxList.Add(new valToMaxClass(0.99,1.0,255,0,255));
            valToMaxList.Add(new valToMaxClass(1.0,double.MaxValue,0,255,255));
        }
        
    [STAThread]
    static public void Main(string[] args)
    {
        createList();
        double[] testArr = new double[]{-1, 0.156,0.234,0.756,12.2};
        var vTMC = from test in testArr
                    from val in valToMaxList
                           where (test>=(double)val.greaterOrEqual && test<(double)val.smallerFrom)
                           select new {test,val};
        foreach(var v in vTMC)
        Console.WriteLine("RGB:test={0}    R= {1},G= {2},B= {3}",v.test,v.val.R,v.val.G,v.val.B);
    }
    
}

class valToMaxClass {
    public double greaterOrEqual { set; get; }
    public double smallerFrom { set; get; }
    public int R { set; get; }
    public int G { set; get; }
    public int B { set; get; }
    
    public valToMaxClass(double gval, double sval,int r, int g, int b) {
        this.greaterOrEqual = gval;
        this.smallerFrom = sval;
        this.R = r;
        this.G = g;
        this.B = b;
        }
    }
    
 

no i wynik sprawdzenia :

RGB:test=-1    R= 0,G= 255,B= 255
RGB:test=0.156    R= 32,G= 255,B= 0
RGB:test=0.234    R= 82,G= 255,B= 0
RGB:test=0.756    R= 255,G= 96,B= 0
RGB:test=12.2    R= 0,G= 255,B= 255

1 użytkowników online, w tym zalogowanych: 0, gości: 1