public virtual ValueBuffer Create(BsonDocument recordData, IValueBufferFromBsonShaper valueBufferShaper) /* object*/ { var fieldCount = recordData.Count; if (fieldCount == 0) { return(ValueBuffer.Empty); } var values = new object[fieldCount]; _processValuesAction?.Invoke(values); for (var i = 0; i < fieldCount; i++) { values[i] = recordData.Values.ToList()[i]; } var idx = 0; foreach (var bsonElement in recordData) { values[idx] = bsonElement; idx++; } return(valueBufferShaper.Shape(new ValueBuffer(values))); }