I have some classes with lots of simple properties (from a datamodel I have no control over) — I’d like to be able to find if the new version of an object is the same as an old version, but don’t want to do 20 different “IsEqual” methods (I don’t really like the “IsEqual” name because it is not an analog to ==). Another wrinkle, in most of the cases I don’t want it to do a deep compare, but in some cases I do want that.
I’d like something along the lines of:
//Property could be PropertyInfo if that is necessary
bool IsEqual<T>(T first, T second, List<Property> ignorableProperties=emptyList, bool recurse=false)
{
//the comparison code returning if they are equal ignoring
//the properties in the ignorableProperties list, recursing if recurse == true
//not sure how I'd handle the comparison of sub-objects in the recursive step.
}
1 Answer