public DfaMatcherBuilder( ParameterPolicyFactory parameterPolicyFactory, EndpointSelector selector, IEnumerable <MatcherPolicy> policies) { _parameterPolicyFactory = parameterPolicyFactory; _selector = selector; _policies = policies.OrderBy(p => p.Order).ToArray(); // Taking care to use _policies, which has been sorted. _nodeBuilders = _policies.OfType <INodeBuilderPolicy>().ToArray(); _comparer = new EndpointComparer(_policies.OfType <IEndpointComparerPolicy>().ToArray()); }