private bool IsEqualTable(CompareEqual comparer, List <IReadOnlyIndex> otherTable, out IDictionary <IReadOnlyIndex, IReadOnlyIndex> matchTable) { matchTable = new Dictionary <IReadOnlyIndex, IReadOnlyIndex>(); CompareEqual MatchComparer = CompareEqual.New(true); foreach (KeyValuePair <IReadOnlyIndex, IReadOnlyNodeState> Entry in StateTable) { MatchComparer.Reset(); bool Found = false; for (int i = 0; i < otherTable.Count; i++) { if (MatchComparer.VerifyEqual((IEqualComparable)Entry.Key, (IEqualComparable)otherTable[i])) { matchTable.Add(Entry.Key, otherTable[i]); otherTable.RemoveAt(i); Found = true; break; } } if (!comparer.IsTrue(Found)) { return(comparer.Failed()); } } return(true); }