Логические c операции в строковом значении, которые включают символы - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь включить условную операцию на основе значения, хранящегося в строковой переменной. Например, из набора значений, которые у меня есть, я пытаюсь реализовать его так, чтобы, когда string value = ">=2.5";, он сначала проверил, доступно ли значение, соответствующее 2.5, так как это минимальное значение, если это правда, он проверит какие другие значения больше 2,5 и получают результат для наибольшего значения из списка значений.

Вот то, что я пробовал до сих пор, и в настоящее время я застрял в реализации logi c, чтобы получить наибольшее значение из набора чисел

static List<double> values = new List<double>();

        static void Main(string[] args)
        {
            values.Add(1.0);
            values.Add(2.0);
            values.Add(2.2);
            values.Add(2.5);
            values.Add(5.0);
            values.Add(5.5);

            string value = ">=2.5";

            if (value.Contains(">="))
            {
                value = value.Replace(">=", "").Trim();


                if (values.Contains(Convert.ToDouble(value)))
                {
                    //Logic should be incorporated
                }


            }


        }

, в этом случае я ожидаю, что наибольшее значение будет 5,5.

Буду признателен за любую помощь в этом

1 Ответ

0 голосов
/ 16 января 2020

У вас есть два варианта: решение Professional и решение Student.

Решение Studant:

        values.Add(1.0);
        values.Add(2.0);
        values.Add(2.2);
        values.Add(2.5);
        values.Add(5.0);
        values.Add(5.5);

        string value = ">=2.5";

        if (value.Contains(">="))
        {
            var valueDouble = Convert.ToDouble(value.Replace(">=", "").Trim());//IMPORT THECONVERSION TO DOUBLE!

            double greatestVersion = 0;
            foreach (var item in values)
            {
                if (item >= valueDouble)
                    greatestVersion = item;
            }

            Console.WriteLine($"The greatest version is " + greatestVersion);
        }

Professional Solution:

var greatestVersion = values.Max(x => x >= Convert.ToDouble(value.Replace(">=", "").Trim()));
...