diff --git a/csharp/src/Apache.Arrow/Ipc/ArrowReaderImplementation.cs b/csharp/src/Apache.Arrow/Ipc/ArrowReaderImplementation.cs index d3115da52cc6..d9174b291da3 100644 --- a/csharp/src/Apache.Arrow/Ipc/ArrowReaderImplementation.cs +++ b/csharp/src/Apache.Arrow/Ipc/ArrowReaderImplementation.cs @@ -196,7 +196,8 @@ private List BuildArrays( : LoadVariableField(version, ref recordBatchEnumerator, field, in fieldNode, messageBuffer, bufferCreator); arrays.Add(ArrowArrayFactory.BuildArray(arrayData)); - } while (recordBatchEnumerator.MoveNextNode()); + } while (recordBatchEnumerator.MoveNextNode() && schemaFieldIndex < schema.FieldsList.Count); + return arrays; }