示例#1
0
        //bool型比较
        protected bool CompareBool(CompareSign Sign, bool val1, string val2)
        {
            bool V2 = false;

            if (val2 == "0" || val2.Equals("false", StringComparison.OrdinalIgnoreCase))
            {
                V2 = false;
            }
            else
            {
                V2 = true;
            }

            switch (Sign)
            {
            case CompareSign.Equals:     //"="
                return(val1 == V2);

            case CompareSign.NotEquals:    //"!="
                return(val1 != V2);

            default:
                break;
            }
            return(false);
        }
示例#2
0
        //double型比较
        protected bool CompareDouble(CompareSign Sign, double val1, string val2)
        {
            if (val2 == "")
            {
                val2 = "0";
            }
            if (Util.IsNum(val2))
            {
                double V2 = Convert.ToInt32(val2);
                switch (Sign)
                {
                case CompareSign.Equals:     //"="
                    return(val1 == V2);

                case CompareSign.Greater:    //">"
                    return(val1 > V2);

                case CompareSign.Less:    //"<"
                    return(val1 < V2);

                case CompareSign.GreaterAndEquals:    //">="
                    return(val1 >= V2);

                case CompareSign.LessAndEquals:    //"<="
                    return(val1 <= V2);

                case CompareSign.NotEquals:    //"!="
                    return(val1 != V2);

                default:
                    break;
                }
            }
            return(false);
        }
示例#3
0
        //长整型比较
        protected bool CompareLong(CompareSign Sign, long val1, string val2)
        {
            if (Util.IsInt(val2))
            {
                long V2 = Convert.ToInt64(val2);
                switch (Sign)
                {
                case CompareSign.Equals:     //"="
                    return(val1 == V2);

                case CompareSign.Greater:    //">"
                    return(val1 > V2);

                case CompareSign.Less:    //"<"
                    return(val1 < V2);

                case CompareSign.GreaterAndEquals:    //">="
                    return(val1 >= V2);

                case CompareSign.LessAndEquals:    //"<="
                    return(val1 <= V2);

                case CompareSign.NotEquals:    //"!="
                    return(val1 != V2);

                default:
                    break;
                }
            }
            return(false);
        }
示例#4
0
        //字符串比较
        protected bool CompareStr(CompareSign Sign, string val1, string val2)
        {
            switch (Sign)
            {
            case CompareSign.Equals:     //"="
                return(val1.Equals(val2, StringComparison.OrdinalIgnoreCase));

            case CompareSign.Greater:    //">"
                return(val1.CompareTo(val2) > 0);

            case CompareSign.Less:    //"<"
                return(val1.CompareTo(val2) < 0);

            case CompareSign.GreaterAndEquals:    //">="
                return(val1.CompareTo(val2) >= 0);

            case CompareSign.LessAndEquals:    //"<="
                return(val1.CompareTo(val2) <= 0);

            case CompareSign.NotEquals:    //"!="
                return(!val1.Equals(val2, StringComparison.OrdinalIgnoreCase));

            case CompareSign.Like:    //"like"
                return(val1.IndexOf(val2, StringComparison.OrdinalIgnoreCase) > -1);

            default:
                break;
            }
            return(false);
        }
        public static bool Compare(this decimal value1, CompareSign compareSign, decimal value2)
        {
            switch (compareSign)
            {
            case CompareSign.Equals:
                return(Object.Equals(value1, value2));

            case CompareSign.NotEquals:
                return(!Object.Equals(value1, value2));

            case CompareSign.Greater:
                return(value1 > value2);

            case CompareSign.Lower:
                return(value1 > value2);

            case CompareSign.GreaterEquals:
                return(value1 >= value2);

            case CompareSign.LowerEquals:
                return(value1 <= value2);

            default:
                return(true);
            }
        }
示例#6
0
 public Condition(Expression left, CompareSign compare, Expression right)
 {
     Compare = compare;
     Left = left;
     Right = right;
     NextTrue = null;
     NextFalse = null;
 }
        public static bool Compare(this object propValue, CompareSign compareSign, object value)
        {
            switch (compareSign)
            {
            case CompareSign.Equals:
                return(Object.Equals(propValue, value));

            case CompareSign.NotEquals:
                return(!Object.Equals(propValue, value));

            default:
                return(Object.Equals(propValue, value));
            }
        }
示例#8
0
        //path型比较
        //附件型仅判断是否为空
        protected bool ComparePath(CompareSign Sign, string val1, string val2)
        {
            bool bIsNull = false;

            if (string.IsNullOrEmpty(val2) || val2.Equals("null", StringComparison.OrdinalIgnoreCase))
            {
                bIsNull = true;
            }

            switch (Sign)
            {
            case CompareSign.Equals:     //"="
                if (bIsNull)
                {
                    return(string.IsNullOrEmpty(val1));
                }
                else
                {
                    return(!string.IsNullOrEmpty(val1));
                }

            case CompareSign.NotEquals:    //"!="
                if (bIsNull)
                {
                    return(!string.IsNullOrEmpty(val1));
                }
                else
                {
                    return(string.IsNullOrEmpty(val1));
                }

            default:
                break;
            }
            return(false);
        }
示例#9
0
        //datetime型比较
        protected bool CompareDateTime(CompareSign Sign, DateTime val1, string val2)
        {
            try
            {
                if (val2 == "")
                {
                    val2 = "1900-1-1";
                }
                DateTime V2 = DateTime.Parse(val2);

                //仅仅比较年月日
                switch (Sign)
                {
                case CompareSign.Equals:     //"="
                    if (val1.Year == V2.Year &&
                        val1.Month == V2.Month &&
                        val1.Day == V2.Day)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }

                case CompareSign.Greater:    //">"
                    return(val1 > V2);

                case CompareSign.Less:    //"<"
                    return(val1 < V2);

                case CompareSign.GreaterAndEquals:    //">="
                    if (val1.Year == V2.Year &&
                        val1.Month == V2.Month &&
                        val1.Day == V2.Day)
                    {
                        return(true);
                    }
                    else
                    {
                        return(val1 > V2);
                    }

                case CompareSign.LessAndEquals:    //"<="
                    if (val1.Year == V2.Year &&
                        val1.Month == V2.Month &&
                        val1.Day == V2.Day)
                    {
                        return(true);
                    }
                    else
                    {
                        return(val1 < V2);
                    }

                case CompareSign.NotEquals:    //"!="
                    if (val1.Year == V2.Year &&
                        val1.Month == V2.Month &&
                        val1.Day == V2.Day)
                    {
                        return(false);
                    }
                    else
                    {
                        return(true);
                    }

                default:
                    break;
                }
            }
            catch
            {
                return(false);
            }
            return(false);
        }