Since both a[i] and b[i] indexers can be costly (in case of linked-list tuples), you should just call `object.Equals(a[i], b[i])` instead of 'a[i] == b[i]', which will also take care of the null checks.