public bool Equals(RuntimeGraph other) { // Breaking this up to ease debugging. The optimizer should be able to handle this, so don't refactor unless you have data :). if (other == null) { return(false); } return(Runtimes.OrderedEquals(other.Runtimes, pair => pair.Key, StringComparer.Ordinal) && Supports.OrderedEquals(other.Supports, pair => pair.Key, StringComparer.Ordinal)); }