diff --git a/examples/AspNetCore/OData/ODataBasicExample/Controllers/PeopleController.cs b/examples/AspNetCore/OData/ODataBasicExample/Controllers/PeopleController.cs
index 01d0c61e..ba41dd73 100644
--- a/examples/AspNetCore/OData/ODataBasicExample/Controllers/PeopleController.cs
+++ b/examples/AspNetCore/OData/ODataBasicExample/Controllers/PeopleController.cs
@@ -24,6 +24,13 @@ public IActionResult Get( ODataQueryOptions<Person> options ) =>
                 Email = "bill.mei@somewhere.com",
                 Phone = "555-555-5555",
             },
+            new() {
+                Id = 2,
+                FirstName = "Xavier",
+                LastName = "John",
+                Email = "xavier@heaven.com",
+                Phone = "666-666-6666",
+            }
         } );
 
     // GET ~/api/people/{key}?api-version=[1.0|2.0]
diff --git a/examples/AspNetCore/OData/ODataBasicExample/Program.cs b/examples/AspNetCore/OData/ODataBasicExample/Program.cs
index a269f238..75368d1d 100644
--- a/examples/AspNetCore/OData/ODataBasicExample/Program.cs
+++ b/examples/AspNetCore/OData/ODataBasicExample/Program.cs
@@ -4,7 +4,8 @@
 
 // Add services to the container.
 
-builder.Services.AddControllers().AddOData();
+builder.Services.AddControllers()
+    .AddOData( options => options.Select().Filter().OrderBy().SetMaxTop( null ).Count() );
 builder.Services.AddProblemDetails();
 builder.Services.AddApiVersioning()
                 .AddOData(
diff --git a/examples/AspNetCore/OData/ODataBasicExample/odatabasicexample.http b/examples/AspNetCore/OData/ODataBasicExample/odatabasicexample.http
new file mode 100644
index 00000000..fc4e3d34
--- /dev/null
+++ b/examples/AspNetCore/OData/ODataBasicExample/odatabasicexample.http
@@ -0,0 +1,22 @@
+@HostAddress = https://localhost:5001
+
+// Get all records
+GET {{HostAddress}}/api/People?api-version=1.0
+Accept: application/json
+###
+
+// Get all records
+GET {{HostAddress}}/api/People?api-version=1.0&$top=1
+Accept: application/json
+###
+
+// Select firstName
+GET {{HostAddress}}/api/People?api-version=1.0&$select=firstName
+Accept: application/json
+###
+
+
+// By Key
+GET {{HostAddress}}/api/People/5?api-version=1.0
+Accept: application/json
+###
\ No newline at end of file
diff --git a/src/AspNet/OData/src/Asp.Versioning.WebApi.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs b/src/AspNet/OData/src/Asp.Versioning.WebApi.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs
index 1c1a2f49..410f48ff 100644
--- a/src/AspNet/OData/src/Asp.Versioning.WebApi.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs
+++ b/src/AspNet/OData/src/Asp.Versioning.WebApi.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs
@@ -13,6 +13,6 @@ private void VisitAction( HttpActionDescriptor action )
         var attributes = new List<EnableQueryAttribute>( controller.GetCustomAttributes<EnableQueryAttribute>( inherit: true ) );
 
         attributes.AddRange( action.GetCustomAttributes<EnableQueryAttribute>( inherit: true ) );
-        VisitEnableQuery( attributes );
+        VisitEnableQuery( attributes.ToArray() );
     }
 }
\ No newline at end of file
diff --git a/src/AspNetCore/OData/src/Asp.Versioning.OData/OData/ODataApplicationModelProvider.cs b/src/AspNetCore/OData/src/Asp.Versioning.OData/OData/ODataApplicationModelProvider.cs
index 402da34d..8b567904 100644
--- a/src/AspNetCore/OData/src/Asp.Versioning.OData/OData/ODataApplicationModelProvider.cs
+++ b/src/AspNetCore/OData/src/Asp.Versioning.OData/OData/ODataApplicationModelProvider.cs
@@ -141,7 +141,7 @@ private static
         return (metadataControllers, supported, deprecated);
     }
 
-    private static ControllerModel? SelectBestMetadataController( IReadOnlyList<ControllerModel> controllers )
+    private static ControllerModel? SelectBestMetadataController( ControllerModel[] controllers )
     {
         // note: there should be at least 2 metadata controllers, but there could be 3+
         // if a developer defines their own custom controller. ultimately, there can be
@@ -154,7 +154,7 @@ private static
         var original = typeof( MetadataController ).GetTypeInfo();
         var versioned = typeof( VersionedMetadataController ).GetTypeInfo();
 
-        for ( var i = 0; i < controllers.Count; i++ )
+        for ( var i = 0; i < controllers.Length; i++ )
         {
             var controller = controllers[i];
 
@@ -192,7 +192,7 @@ private void ApplyMetadataControllerConventions(
             return;
         }
 
-        var metadataController = SelectBestMetadataController( metadataControllers );
+        var metadataController = SelectBestMetadataController( metadataControllers.ToArray() );
 
         if ( metadataController == null )
         {
diff --git a/src/AspNetCore/OData/test/Asp.Versioning.OData.ApiExplorer.Tests/ApiExplorer/ODataApiDescriptionProviderTest.cs b/src/AspNetCore/OData/test/Asp.Versioning.OData.ApiExplorer.Tests/ApiExplorer/ODataApiDescriptionProviderTest.cs
index 511513b4..532abb00 100644
--- a/src/AspNetCore/OData/test/Asp.Versioning.OData.ApiExplorer.Tests/ApiExplorer/ODataApiDescriptionProviderTest.cs
+++ b/src/AspNetCore/OData/test/Asp.Versioning.OData.ApiExplorer.Tests/ApiExplorer/ODataApiDescriptionProviderTest.cs
@@ -256,9 +256,9 @@ private static void AssertQueryOptionWithoutOData( ApiDescription description, s
         parameter.ModelMetadata.Description.Should().EndWith( suffix + '.' );
     }
 
-    private void PrintGroup( IReadOnlyList<ApiDescription> items )
+    private void PrintGroup( ApiDescription[] items )
     {
-        for ( var i = 0; i < items.Count; i++ )
+        for ( var i = 0; i < items.Length; i++ )
         {
             var item = items[i];
             console.WriteLine( $"[{item.GroupName}] {item.HttpMethod} {item.RelativePath}" );
diff --git a/src/AspNetCore/WebApi/src/Asp.Versioning.Mvc/ApplicationModels/DefaultApiControllerFilter.cs b/src/AspNetCore/WebApi/src/Asp.Versioning.Mvc/ApplicationModels/DefaultApiControllerFilter.cs
index e8d851be..8ab501c7 100644
--- a/src/AspNetCore/WebApi/src/Asp.Versioning.Mvc/ApplicationModels/DefaultApiControllerFilter.cs
+++ b/src/AspNetCore/WebApi/src/Asp.Versioning.Mvc/ApplicationModels/DefaultApiControllerFilter.cs
@@ -10,7 +10,7 @@ namespace Asp.Versioning.ApplicationModels;
 [CLSCompliant( false )]
 public sealed class DefaultApiControllerFilter : IApiControllerFilter
 {
-    private readonly IReadOnlyList<IApiControllerSpecification> specifications;
+    private readonly IApiControllerSpecification[] specifications;
 
     /// <summary>
     /// Initializes a new instance of the <see cref="DefaultApiControllerFilter"/> class.
@@ -24,7 +24,7 @@ public DefaultApiControllerFilter( IEnumerable<IApiControllerSpecification> spec
     /// <inheritdoc />
     public IList<ControllerModel> Apply( IList<ControllerModel> controllers )
     {
-        if ( specifications.Count == 0 )
+        if ( specifications.Length == 0 )
         {
             return controllers;
         }
@@ -44,7 +44,7 @@ public IList<ControllerModel> Apply( IList<ControllerModel> controllers )
 
     private bool IsApiController( ControllerModel controller )
     {
-        for ( var i = 0; i < specifications.Count; i++ )
+        for ( var i = 0; i < specifications.Length; i++ )
         {
             if ( specifications[i].IsSatisfiedBy( controller ) )
             {
diff --git a/src/Common/src/Common.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs b/src/Common/src/Common.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs
index 7cb50224..2f58f340 100644
--- a/src/Common/src/Common.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs
+++ b/src/Common/src/Common.OData.ApiExplorer/Conventions/ODataAttributeVisitor.cs
@@ -76,11 +76,11 @@ private void VisitModel( IEdmStructuredType modelType )
         VisitMaxTop( querySettings );
     }
 
-    private void VisitEnableQuery( IReadOnlyList<EnableQueryAttribute> attributes )
+    private void VisitEnableQuery(EnableQueryAttribute[] attributes )
     {
         var @default = new EnableQueryAttribute();
 
-        for ( var i = 0; i < attributes.Count; i++ )
+        for ( var i = 0; i < attributes.Length; i++ )
         {
             var attribute = attributes[i];