From: Peter K. <pk...@ka...> - 2011-01-05 14:51:21
|
#if WINDOWS_PHONE using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Collections; using System.Collections.Generic; namespace VDS.RDF { /* Code stolen from http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/e1dd3571-dfb8-4abe-b63a-62106d6a4965/ */ public class HashSet<T> : ICollection<T> { private Dictionary<T, short> MyDict; public HashSet() { MyDict = new Dictionary<T, short>(); } public HashSet(IEnumerable enumer) { MyDict = new Dictionary<T, short>(); foreach (T item in enumer) { MyDict.Add(item,0); } } // Methods public void Add(T item) { // We don't care for the value in dictionary, Keys matter. MyDict.Add(item, 0); } public void Clear() { MyDict.Clear(); } public bool Contains(T item) { return MyDict.ContainsKey(item); } public void CopyTo(T[] array, int arrayIndex) { throw new NotImplementedException(); } public bool Remove(T item) { return MyDict.Remove(item); } public IEnumerator<T> GetEnumerator() { throw new NotImplementedException(); } IEnumerator IEnumerable.GetEnumerator() { throw new NotImplementedException(); } public void UnionWith(IEnumerable<T> other) { foreach (T item in other) { try { MyDict.Add(item, 0); } catch (ArgumentException) { } } } // Properties public int Count { get { return MyDict.Keys.Count; } } public bool IsReadOnly { get { return false; } } } } #endif |