Search code examples
c#conditional-statementsoperators

Convert string value to operator in C#


I'm trying to figure out a way to build a conditional dynamically.

Here is my code so far:

var greaterThan = ">";
var a = 1;
var b = 2;

if (a Convert.ToOperator(greaterThan) b) {...}

I did read this post, but could not figure out how to implement some of the stuff: C# convert a string for use in a logical condition

Any advice is highly appreciated. Thanks.


Solution

  • I wasn't going to post it, but thought that it might be of some help. Assuming of course that you don't need the advanced generic logic in Jon's post.

    public static class Extension
    {
        public static Boolean Operator(this string logic, int x, int y)
        {
            switch (logic)
            {
                case ">": return x > y;
                case "<": return x < y;
                case "==": return x == y;
                default: throw new Exception("invalid logic");
            }
        }
    }
    

    You could use the code like this, with greaterThan being a string with the wanted logic/operator.

    if (greaterThan.Operator(a, b))