public IEnumerator <KeyValuePair <K, T> > GetEnumerator() { var arrayListEnumerator = KeyValueArray.GetEnumerator(); while (arrayListEnumerator.MoveNext()) { if (arrayListEnumerator.Current != null) { var currentLinkedList = (LinkedList <KeyValuePair <K, T> >)arrayListEnumerator.Current; var linkedListEnumerator = currentLinkedList.GetEnumerator(); while (linkedListEnumerator.MoveNext()) { yield return(linkedListEnumerator.Current); } } } }