Z.Expressions.ListDictionary.Add C# (CSharp) Method

Add() public method

public Add ( object key, object value ) : void
key object
value object
return void
        public void Add(object key, object value)
        {
            if (key == null)
            {
                throw new ArgumentNullException("Argument cannot be null", "key");
            }
            version++;
            DictionaryNode last = null;
            DictionaryNode node;
            for (node = head; node != null; node = node.next)
            {
                var oldKey = node.key;
                if ((comparer == null) ? oldKey.Equals(key) : comparer.Compare(oldKey, key) == 0)
                {
                    throw new ArgumentException(string.Format("Duplicate keys: new key: {0}, old value: {1}, new value: {2}", key, this[oldKey], value));
                }
                last = node;
            }

            // Not found, so add a new one
            var newNode = new DictionaryNode();
            newNode.key = key;
            newNode.value = value;
            if (last != null)
            {
                last.next = newNode;
            }
            else
            {
                head = newNode;
            }
            Count++;
        }