public Key(IProfileInstance[] profileInstances, Func <RoutingEdge, bool> isBetter, float maxSearchDistance, ResolveSettings settings) { this.ProfileInstanceNames = new string[profileInstances.Length]; for (var i = 0; i < this.ProfileInstanceNames.Length; i++) { this.ProfileInstanceNames[i] = profileInstances[i].Profile.FullName; } this.IsBetterFunc = isBetter; this.MaxSearchDistance = maxSearchDistance; this.ResolveSettings = settings?.Clone(); }