public ErrorHandlerFor(IEnumerable <KeyValuePair <T, SingleErrorHandlerDelegate <T> > > handlers, SingleErrorHandlerDelegate <T> fallbackHandler) { this.handlers = new Dictionary <T, SingleErrorHandlerDelegate <T> >(); foreach (var handler in handlers) { Debug.Assert(handler.Value != null); this.handlers.Add(handler.Key, handler.Value); } foreach (var enumValue in enumValues) { if (this.handlers.ContainsKey(enumValue) == false) { this.handlers.Add(enumValue, fallbackHandler); } } checkHandlers(); }
public ErrorHandlerFor(IEnumerable <KeyValuePair <IEnumerable <T>, SingleErrorHandlerDelegate <T> > > handlers, SingleErrorHandlerDelegate <T> fallbackHandler) : this(handlers.SelectMany(h => h.Key.Select(key => new KeyValuePair <T, SingleErrorHandlerDelegate <T> >(key, h.Value))), fallbackHandler) { }