public override int GetHashCode() { unchecked { var comparer = new KeyValuePairStringIntComparer(); var hashCode = (int)N11; hashCode = (hashCode * 397) ^ (int)N12; hashCode = (hashCode * 397) ^ (int)N13; hashCode = (hashCode * 397) ^ (int)N14; hashCode = (hashCode * 397) ^ (int)N21; hashCode = (hashCode * 397) ^ (int)N22; hashCode = (hashCode * 397) ^ (int)N23; hashCode = (hashCode * 397) ^ (int)N24; hashCode = (hashCode * 397) ^ _d11.GetHashCode(); hashCode = (hashCode * 397) ^ _d12.GetHashCode(); hashCode = (hashCode * 397) ^ _d13.GetHashCode(); hashCode = (hashCode * 397) ^ _d21.GetHashCode(); hashCode = (hashCode * 397) ^ _d22.GetHashCode(); hashCode = (hashCode * 397) ^ _d23.GetHashCode(); hashCode = (hashCode * 397) ^ TwoGramCount.GetHashCode(); hashCode = ReverseWordList?.Aggregate(hashCode, (current, count) => (current * 397) ^ comparer.GetHashCode(count)) ?? hashCode; hashCode = DataSet?.Aggregate(hashCode, (current, count) => (current * 397) ^ count.GetHashCode()) ?? hashCode; return(hashCode); } }