public void AddFirst(T element) { lock (this) { if (this.firstNode.IsFull) { ObjectListNode <T> newNode = new ObjectListNode <T>(); newNode.Next = this.firstNode; this.firstNode = newNode; } this.firstNode.Add(element); this.count++; } }
public virtual void Add(T element) { lock (this) { if (this.lastNode.IsFull) { ObjectListNode <T> newNode = new ObjectListNode <T>(); this.lastNode.Next = newNode; this.lastNode = newNode; } this.lastNode.Add(element); this.count++; } }
public void Remove(T element) { lock (this) { for (ObjectListNode <T> node = this.firstNode; node != null; node = node.Next) { for (int k = 0; k < node.Elements.Length; k++) { if (element.Equals(node.Elements[k])) { node.Elements[k] = default(T); this.count--; return; } } } } }
public ObjectList() { this.lastNode = this.firstNode = new ObjectListNode <T>(); }