private IHandler[] GetHandlersNoLock(Type service) { //we have 3 segments const int defaults = 0; const int regulars = 1; const int fallbacks = 2; var handlers = new SegmentedList <IHandler>(3); foreach (var handler in name2Handler.Values) { if (handler.Supports(service) == false) { continue; } if (IsDefault(handler, service)) { handlers.AddFirst(defaults, handler); continue; } if (IsFallback(handler, service)) { handlers.AddLast(fallbacks, handler); continue; } handlers.AddLast(regulars, handler); } return(handlers.ToArray()); }
private IHandler[] GetHandlersNoLock(Type service) { //we have 3 segments const int defaults = 0; const int regulars = 1; const int fallbacks = 2; var handlers = new SegmentedList<IHandler>(3); foreach (var handler in name2Handler.Values) { if (handler.Supports(service) == false) { continue; } if (IsDefault(handler, service)) { handlers.AddFirst(defaults, handler); continue; } if (IsFallback(handler, service)) { handlers.AddLast(fallbacks, handler); continue; } handlers.AddLast(regulars, handler); } return handlers.ToArray(); }