44using System ;
55using System . Collections . Generic ;
66using System . Diagnostics ;
7+ using System . Linq ;
78using System . Threading . Tasks ;
9+ using Microsoft . AspNetCore . Mvc . Abstractions ;
810using Microsoft . AspNetCore . Mvc . ModelBinding ;
911
1012namespace Microsoft . AspNetCore . Mvc . Controllers
@@ -55,6 +57,18 @@ internal static class ControllerBinderDelegateProvider
5557 return null ;
5658 }
5759
60+ var parameters = actionDescriptor . Parameters switch
61+ {
62+ List < ParameterDescriptor > list => list . ToArray ( ) ,
63+ _ => actionDescriptor . Parameters . ToArray ( )
64+ } ;
65+
66+ var properties = actionDescriptor . BoundProperties switch
67+ {
68+ List < ParameterDescriptor > list => list . ToArray ( ) ,
69+ _ => actionDescriptor . BoundProperties . ToArray ( )
70+ } ;
71+
5872 return Bind ;
5973
6074 async Task Bind ( ControllerContext controllerContext , object controller , Dictionary < string , object ? > arguments )
@@ -67,9 +81,7 @@ async Task Bind(ControllerContext controllerContext, object controller, Dictiona
6781
6882 Debug . Assert ( valueProvider is not null ) ;
6983
70- var parameters = actionDescriptor . Parameters ;
71-
72- for ( var i = 0 ; i < parameters . Count ; i ++ )
84+ for ( var i = 0 ; i < parameters . Length ; i ++ )
7385 {
7486 var parameter = parameters [ i ] ;
7587 var bindingInfo = parameterBindingInfo ! [ i ] ;
@@ -95,8 +107,7 @@ async Task Bind(ControllerContext controllerContext, object controller, Dictiona
95107 }
96108 }
97109
98- var properties = actionDescriptor . BoundProperties ;
99- for ( var i = 0 ; i < properties . Count ; i ++ )
110+ for ( var i = 0 ; i < properties . Length ; i ++ )
100111 {
101112 var property = properties [ i ] ;
102113 var bindingInfo = propertyBindingInfo ! [ i ] ;
0 commit comments