// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================================= ** ** ** ** Purpose: DebugView class for generic collections ** ** Date: Mar 09, 2004 ** =============================================================================*/ namespace System.Collections.Generic { using System; using System.Security.Permissions; using System.Diagnostics; internal sealed class System_CollectionDebugView { private ICollection collection; public System_CollectionDebugView(ICollection collection) { if (collection == null) { throw new ArgumentNullException("collection"); } this.collection = collection; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public T[] Items { get { T[] items = new T[collection.Count]; collection.CopyTo(items, 0); return items; } } } internal sealed class System_QueueDebugView { private Queue queue; public System_QueueDebugView(Queue queue) { if (queue == null) { throw new ArgumentNullException("queue"); } this.queue = queue; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public T[] Items { get { return queue.ToArray(); } } } internal sealed class System_StackDebugView { private Stack stack; public System_StackDebugView(Stack stack) { if (stack == null) { throw new ArgumentNullException("stack"); } this.stack = stack; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public T[] Items { get { return stack.ToArray(); } } } #if !SILVERLIGHT || FEATURE_NETCORE internal sealed class System_DictionaryDebugView { private IDictionary dict; public System_DictionaryDebugView(IDictionary dictionary) { if (dictionary == null) throw new ArgumentNullException("dictionary"); this.dict = dictionary; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public KeyValuePair[] Items { get { KeyValuePair[] items = new KeyValuePair[dict.Count]; dict.CopyTo(items, 0); return items; } } } internal sealed class System_DictionaryKeyCollectionDebugView { private ICollection collection; public System_DictionaryKeyCollectionDebugView(ICollection collection) { if (collection == null) ThrowHelper.ThrowArgumentNullException(ExceptionArgument.collection); this.collection = collection; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public TKey[] Items { get { TKey[] items = new TKey[collection.Count]; collection.CopyTo(items, 0); return items; } } } internal sealed class System_DictionaryValueCollectionDebugView { private ICollection collection; public System_DictionaryValueCollectionDebugView(ICollection collection) { if (collection == null) ThrowHelper.ThrowArgumentNullException(ExceptionArgument.collection); this.collection = collection; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public TValue[] Items { get { TValue[] items = new TValue[collection.Count]; collection.CopyTo(items, 0); return items; } } } #endif // !SILVERLIGHT || FEATURE_NETCORE }