/// <summary> /// Returns the label with the given name. /// /// Throws KeyNotFoundException if no label by that name is found". /// </summary> public Label this[string name] { get { if (!InnerLookup.ContainsKey(name)) { throw new KeyNotFoundException("No label with name '" + name + "' found"); } return(InnerLookup[name]); } }
public IEnumerator <IGrouping <keyˈ, valueˈ> > GetEnumerator() => InnerLookup.Where(g => Filter(g.Key)).GetEnumerator();
public bool Contains(keyˈ key) => Filter(key) && InnerLookup.Contains(key);
public IEnumerable <valueˈ> this[keyˈ key] => Filter(key) ? InnerLookup.Get(key) : Enumerable.Empty <valueˈ>();
public IEnumerator <IGrouping <keyˈ, valueˈ> > GetEnumerator() => InnerLookup.Select(g => g.Map(g.Key, (k, v) => Projection(k, v))).GetEnumerator();
public bool Contains(keyˈ key) => InnerLookup.Contains(key);