protected override bool TryGetValue(TKey key, IList <TValue> values, int startIndex, int length, out TValue value) { for (var i = startIndex; i < length; i++) { var thisKey = _keys[i]; if (_keyComparer.Invoke(thisKey, key)) { value = values[i]; return(true); } } return(NotFound(out value)); }