From 450c18f9048681606e5571d52be999a8833449ef Mon Sep 17 00:00:00 2001 From: BorisDog Date: Wed, 3 Dec 2025 15:29:32 -0800 Subject: [PATCH] CSHARP-5667: Switch to 'for' loop in BsonClassMapSerializer.SerializeClass to reduce allocations --- .../Serialization/Serializers/BsonClassMapSerializer.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MongoDB.Bson/Serialization/Serializers/BsonClassMapSerializer.cs b/src/MongoDB.Bson/Serialization/Serializers/BsonClassMapSerializer.cs index bec64ba12af..bea654e2b84 100644 --- a/src/MongoDB.Bson/Serialization/Serializers/BsonClassMapSerializer.cs +++ b/src/MongoDB.Bson/Serialization/Serializers/BsonClassMapSerializer.cs @@ -344,8 +344,9 @@ public bool GetDocumentId( /// public bool TryGetMemberSerializationInfo(string memberName, out BsonSerializationInfo serializationInfo) { - foreach (var memberMap in _classMap.AllMemberMaps) + for (var i = 0; i < _classMap.AllMemberMaps.Count; i++) { + var memberMap = _classMap.AllMemberMaps[i]; if (memberMap.MemberName == memberName) { var elementName = memberMap.ElementName; @@ -584,8 +585,9 @@ private void SerializeClass(BsonSerializationContext context, BsonSerializationA SerializeDiscriminator(context, args.NominalType, document); } - foreach (var memberMap in _classMap.AllMemberMaps) + for (var i = 0; i < _classMap.AllMemberMaps.Count; i++) { + var memberMap = _classMap.AllMemberMaps[i]; if (memberMap != idMemberMap || !args.SerializeIdFirst) { SerializeMember(context, document, memberMap);