Skip to content

Commit e3b25ba

Browse files
authored
CSHARP-5667: Switch to 'for' loop in BsonClassMapSerializer.SerializeClass to reduce allocations (#1835)
1 parent 16b8bdb commit e3b25ba

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/MongoDB.Bson/Serialization/Serializers/BsonClassMapSerializer.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,9 @@ public bool GetDocumentId(
344344
/// </returns>
345345
public bool TryGetMemberSerializationInfo(string memberName, out BsonSerializationInfo serializationInfo)
346346
{
347-
foreach (var memberMap in _classMap.AllMemberMaps)
347+
for (var i = 0; i < _classMap.AllMemberMaps.Count; i++)
348348
{
349+
var memberMap = _classMap.AllMemberMaps[i];
349350
if (memberMap.MemberName == memberName)
350351
{
351352
var elementName = memberMap.ElementName;
@@ -584,8 +585,9 @@ private void SerializeClass(BsonSerializationContext context, BsonSerializationA
584585
SerializeDiscriminator(context, args.NominalType, document);
585586
}
586587

587-
foreach (var memberMap in _classMap.AllMemberMaps)
588+
for (var i = 0; i < _classMap.AllMemberMaps.Count; i++)
588589
{
590+
var memberMap = _classMap.AllMemberMaps[i];
589591
if (memberMap != idMemberMap || !args.SerializeIdFirst)
590592
{
591593
SerializeMember(context, document, memberMap);

0 commit comments

Comments
 (0)