public virtual Object this[Object key]
{
get
{
int i = IndexOfKey(key);
if (i >= 0) return _values[i];
return null;
}
set
{
if (key == null) throw new ArgumentNullException(nameof(key), SR.ArgumentNull_Key);
Contract.EndContractBlock();
int i = Array.BinarySearch(_keys, 0, _size, key, _comparer);
if (i >= 0)
{
_values[i] = value;
_version++;
return;
}
Insert(~i, key, value);
}
}