PrefixNodePath(IEnumerable <TKey> enumerable) { PrefixTreeNodeCollection <TKey, TValue> currentNodeCollection = this.collection; IEnumerator <TKey> enumerator = enumerable.GetEnumerator(); while (enumerator.MoveNext()) { TKey prefix = enumerator.Current; yield return(new KeyValuePair <TKey, PrefixTreeNodeCollection <TKey, TValue> > (prefix, currentNodeCollection)); if (!currentNodeCollection.ContainsKey(prefix)) { yield break; } currentNodeCollection = currentNodeCollection[prefix].Children; } }
public PrefixTreeNodeCollection(PrefixTreeNodeCollection <TKey, TValue> collection) { this.collection = collection.collection; }