author | moel.mich |
Sun, 30 Jun 2013 16:24:52 +0000 | |
changeset 409 | 2ce8da367490 |
parent 344 | 3145aadca3d2 |
permissions | -rw-r--r-- |
moel@165 | 1 |
/* |
moel@165 | 2 |
|
moel@344 | 3 |
This Source Code Form is subject to the terms of the Mozilla Public |
moel@344 | 4 |
License, v. 2.0. If a copy of the MPL was not distributed with this |
moel@344 | 5 |
file, You can obtain one at http://mozilla.org/MPL/2.0/. |
moel@165 | 6 |
|
moel@395 | 7 |
Copyright (C) 2009-2013 Michael Möller <mmoeller@openhardwaremonitor.org> |
moel@344 | 8 |
|
moel@165 | 9 |
*/ |
moel@165 | 10 |
|
moel@165 | 11 |
using System.Collections; |
moel@165 | 12 |
using System.Collections.Generic; |
moel@165 | 13 |
|
moel@165 | 14 |
namespace OpenHardwareMonitor.Collections { |
moel@167 | 15 |
|
moel@165 | 16 |
public class ListSet<T> : IEnumerable<T> { |
moel@165 | 17 |
|
moel@195 | 18 |
private readonly List<T> list = new List<T>(); |
moel@165 | 19 |
|
moel@165 | 20 |
public bool Add(T item) { |
moel@165 | 21 |
if (list.Contains(item)) |
moel@165 | 22 |
return false; |
moel@165 | 23 |
|
moel@165 | 24 |
list.Add(item); |
moel@165 | 25 |
return true; |
moel@165 | 26 |
} |
moel@165 | 27 |
|
moel@165 | 28 |
public bool Remove(T item) { |
moel@165 | 29 |
if (!list.Contains(item)) |
moel@165 | 30 |
return false; |
moel@165 | 31 |
|
moel@165 | 32 |
list.Remove(item); |
moel@165 | 33 |
return true; |
moel@165 | 34 |
} |
moel@165 | 35 |
|
moel@165 | 36 |
public bool Contains(T item) { |
moel@165 | 37 |
return list.Contains(item); |
moel@165 | 38 |
} |
moel@165 | 39 |
|
moel@165 | 40 |
public T[] ToArray() { |
moel@165 | 41 |
return list.ToArray(); |
moel@165 | 42 |
} |
moel@165 | 43 |
|
moel@165 | 44 |
public IEnumerator<T> GetEnumerator() { |
moel@165 | 45 |
return list.GetEnumerator(); |
moel@165 | 46 |
} |
moel@165 | 47 |
|
moel@165 | 48 |
IEnumerator IEnumerable.GetEnumerator() { |
moel@165 | 49 |
return list.GetEnumerator(); |
moel@165 | 50 |
} |
moel@395 | 51 |
|
moel@395 | 52 |
public int Count { |
moel@395 | 53 |
get { |
moel@395 | 54 |
return list.Count; |
moel@395 | 55 |
} |
moel@395 | 56 |
} |
moel@165 | 57 |
} |
moel@165 | 58 |
} |