moel@165: /* moel@165: moel@344: This Source Code Form is subject to the terms of the Mozilla Public moel@344: License, v. 2.0. If a copy of the MPL was not distributed with this moel@344: file, You can obtain one at http://mozilla.org/MPL/2.0/. moel@165: moel@395: Copyright (C) 2009-2013 Michael Möller moel@344: moel@165: */ moel@165: moel@165: using System.Collections; moel@165: using System.Collections.Generic; moel@165: moel@165: namespace OpenHardwareMonitor.Collections { moel@167: moel@165: public class ListSet : IEnumerable { moel@165: moel@195: private readonly List list = new List(); moel@165: moel@165: public bool Add(T item) { moel@165: if (list.Contains(item)) moel@165: return false; moel@165: moel@165: list.Add(item); moel@165: return true; moel@165: } moel@165: moel@165: public bool Remove(T item) { moel@165: if (!list.Contains(item)) moel@165: return false; moel@165: moel@165: list.Remove(item); moel@165: return true; moel@165: } moel@165: moel@165: public bool Contains(T item) { moel@165: return list.Contains(item); moel@165: } moel@165: moel@165: public T[] ToArray() { moel@165: return list.ToArray(); moel@165: } moel@165: moel@165: public IEnumerator GetEnumerator() { moel@165: return list.GetEnumerator(); moel@165: } moel@165: moel@165: IEnumerator IEnumerable.GetEnumerator() { moel@165: return list.GetEnumerator(); moel@165: } moel@395: moel@395: public int Count { moel@395: get { moel@395: return list.Count; moel@395: } moel@395: } moel@165: } moel@165: }