Convert string value to operator in C#

前端 未结 3 1008
伪装坚强ぢ
伪装坚强ぢ 2020-11-30 12:47

Im trying to figure out a way to build a conditional dynamically.

In example

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

if(a Convert.ToOperat         


        
3条回答
  •  失恋的感觉
    2020-11-30 13:16

    A more generic way of doing it is to take any IComparable objects.

        public static bool Compare(string op, T left, T right) where T : IComparable {
            switch (op) {
                case "<": return left.CompareTo(right) < 0;
                case ">": return left.CompareTo(right) > 0;
                case "<=": return left.CompareTo(right) <= 0;
                case ">=": return left.CompareTo(right) >= 0;
                case "==": return left.Equals(right);
                case "!=": return !left.Equals(right);
                default: throw new ArgumentException("Invalid comparison operator: {0}", op);
            }
        }
    

提交回复
热议问题