public string GetName(int i)
 {
     ThrowIfDisposed();
     if (_currentColumnNamesLookupIfKnown != null)
     {
         foreach (var nameAndIndex in _currentColumnNamesLookupIfKnown)
         {
             if (nameAndIndex.Value == i)
             {
                 return(nameAndIndex.Key);
             }
         }
     }
     return(_reader.GetName(_readerId, i));
 }