GenericRecord in C# can only be accessed by field name and not by field index (Java version support access by index). Accessing a dictionary for each field is costly.
In Java There is: Record.put(int i, Object v). In C# GenericRecord there is only: Add(string fieldName, object fieldValue) (and string indexer).
And there is no way to extend GenericRecord to support indexed access.