compare the properties of two objects class
Use reflection to compare the properties of two objects class
How to use this
internal static class ObjectHelper<T>
{
public static void Compare(T x, T y)
{
Type type = typeof(T);
PropertyInfo[] properties = type.GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
int compareValue = 0;
foreach (PropertyInfo property in properties)
{
IComparable valx = property.GetValue(x, null) as IComparable; // new value
if (valx == null) continue;
object valy = property.GetValue(y, null); // old value
compareValue = valx.CompareTo(valy);
if (compareValue != 0)
return compareValue;
}
return compareValue;
}
}
How to use this
class1 n1 = new class1(); n1.Name = "bhaumik"; class1 n2 = new class1 (); n2.Name = "bhaumik"; int result1 = ObjectHelper<class1>.Compare(n1, n2); // result1 == 0 because n1 and n2 have equal properties n1.Name = "patel"; // change the first name, so n1 should no longer equal n2 int result2 = ObjectHelper<class1>.Compare(n1, n2); // result2 != 0 because n1 and n2 do not have equal properties
compare the properties of two objects class
Reviewed by Bhaumik Patel
on
2:57 AM
Rating: