//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); }
//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); }
//长整型比较 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); }
//字符串比较 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); } }
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)); } }
//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); }
//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); }