public static bool CompareWith(this object valueTest, CompareWithAdditionalComparer additionalComparer, bool performParse, params object[] values) { foreach (var value in values) { if (value is string && valueTest is string && ((string)valueTest) == ((string)value)) { return(true); } else if (value is DateTime && valueTest is DateTime && ((DateTime)valueTest) == ((DateTime)value)) { return(true); } else if (value is Guid && valueTest is Guid && ((Guid)valueTest) == ((Guid)value)) { return(true); } else if (value.GetType().IsEnum&& valueTest.GetType().IsEnum&& valueTest.Equals(value)) { return(true); } else if (value is int && valueTest is int && ((int)valueTest) == ((int)value)) { return(true); } else if (value is uint && valueTest is uint && ((uint)valueTest) == ((uint)value)) { return(true); } else if (value is BigInteger && valueTest is BigInteger && ((BigInteger)valueTest) == ((BigInteger)value)) { return(true); } else if (value is Color && valueTest is Color && ((Color)valueTest).ToArgb() == ((Color)value).ToArgb()) { return(true); } else if (value is char && valueTest is char && ((char)valueTest) == ((char)value)) { return(true); } else if (value is Type && valueTest is Type) { var type = (Type)value; var typeTest = (Type)valueTest; if (type == typeTest) { return(true); } else if (type.IsOrInheritsFrom(typeTest)) { return(true); } else if (typeTest.IsOrInheritsFrom(type)) { return(true); } } else if (value == valueTest || value.Equals(valueTest)) { return(true); } } return(false); }
public static bool CompareWith(this object value, CompareWithAdditionalComparer additionalComparer, params object[] values) { return(CompareWith(value, null, false, values)); }