public bool TryGetValue(object key, out object value)
{
if (key == null)
{
throw new ArgumentNullException("key", "error");
}
var node = head;
if (comparer == null)
{
while (node != null)
{
var oldKey = node.key;
if (oldKey != null && oldKey.Equals(key))
{
value = node.value;
return true;
}
node = node.next;
}
}
else
{
while (node != null)
{
var oldKey = node.key;
if (oldKey != null && comparer.Compare(oldKey, key) == 0)
{
value = node.value;
return true;
}
node = node.next;
}
}
value = null;
return false;
}