Skip to content

Commit b743c9e

Browse files
committed
Optimize PersistentGenericBag.EqualsSnapshot
1 parent bd3fa29 commit b743c9e

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/NHibernate/Collection/Generic/PersistentGenericBag.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,12 +295,15 @@ public override bool EqualsSnapshot(ICollectionPersister persister)
295295
return false;
296296
}
297297

298-
foreach (var elt in _gbag)
298+
for (var i = 0; i < _gbag.Count; i++)
299299
{
300-
if (CountOccurrences(elt, _gbag, elementType) != CountOccurrences(elt, sn, elementType))
301-
{
300+
if(elementType.IsSame(_gbag[i], sn[i]))
301+
continue;
302+
303+
var elt = _gbag[i];
304+
var countInSnapshot = CountOccurrences(elt, sn, elementType);
305+
if (countInSnapshot == 0 || CountOccurrences(elt, _gbag, elementType) != countInSnapshot)
302306
return false;
303-
}
304307
}
305308

306309
return true;

0 commit comments

Comments
 (0)