C# 包含符号的字符串值中的逻辑运算

C# 包含符号的字符串值中的逻辑运算,c#,.net,string,logic,operators,C#,.net,String,Logic,Operators,我试图结合一个基于字符串变量中存储的值的条件操作。 例如,在我拥有的一组值中,我试图实现它,以便当string value=“>=2.5”它将首先检查对应于2.5的值是否可用,因为该值是最小值,如果该值为真,它将检查哪些其他值大于2.5,并将结果从值列表中获取最大值 这是我到目前为止尝试过的,我目前一直在执行逻辑,以从一组数字中获得最大值 static List<double> values = new List<double>(); static vo

我试图结合一个基于字符串变量中存储的值的条件操作。 例如,在我拥有的一组值中,我试图实现它,以便当
string value=“>=2.5”它将首先检查对应于2.5的值是否可用,因为该值是最小值,如果该值为真,它将检查哪些其他值大于2.5,并将结果从值列表中获取最大值

这是我到目前为止尝试过的,我目前一直在执行逻辑,以从一组数字中获得最大值

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
                }


            }


        }
静态列表值=新列表();
静态void Main(字符串[]参数)
{
增加(1.0);
增加(2.0);
增加(2.2);
增加(2.5);
增加(5.0);
增加(5.5);
字符串值=“>=2.5”;
if(value.Contains(“>=”)
{
value=value.Replace(“>=”,“).Trim();
if(values.Contains(Convert.ToDouble(value)))
{
//应当纳入逻辑
}
}
}
在这种情况下,我希望最大值为5.5


如果您能在这方面提供帮助,我们将不胜感激。您有两种选择:专业解决方案和学生解决方案

学生解决方案:

        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);
        }
var greatestVersion = values.Max(x => x >= Convert.ToDouble(value.Replace(">=", "").Trim()));
专业解决方案:

        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);
        }
var greatestVersion = values.Max(x => x >= Convert.ToDouble(value.Replace(">=", "").Trim()));

values.Contains
查找列表是否包含精确值(在本例中为2.5)。您可能希望尝试遍历每个项目,并将其与所需的值进行比较,或者使用LINQ(即
值.Any(…)
var largestNumGtEqValue=values.Max(v=>v>=value)是否回答了您的问题?