Checking equality of generic values C# with Example
If logic of generic class or method requires checking equality of values having generic type, use EqualityComparer.Default property: public void Foo(TBar arg1, TBar arg2) { var comparer = EqualityComparer.Default; if (comparer.Equals(arg1,arg2) { ... } } This approach is better than simply calling Object.Equals() method, because default comparer implementation checks, whether TBar type implements IEquatale interface and if yes, calls IEquatable.Equals(TBar other) method. This allows to avoid boxing/unboxing of value types.