System.Collections.Queue.Dequeue C# (CSharp) Method

Dequeue() public method

public Dequeue ( ) : object
return object
        public virtual object Dequeue() { throw null; }
        public virtual void Enqueue(object obj) { }

Same methods

Queue::Dequeue ( ) : Object

Usage Example

        private static IEnumerable<Type> getTypes(Type sourceType)
        {
            Queue<Type> pending = new Queue<Type>();
            HashSet<Type> visited = new HashSet<Type>();
            pending.Enqueue(sourceType);

            while (pending.Count != 0)
            {
                Type type = pending.Dequeue();
                visited.Add(type);
                yield return type;

                if (type.BaseType != null)
                {
                    if (!visited.Contains(type.BaseType))
                    {
                        pending.Enqueue(type.BaseType);
                    }
                }

                foreach (Type interfaceType in type.GetInterfaces())
                {
                    if (!visited.Contains(interfaceType))
                    {
                        pending.Enqueue(interfaceType);
                    }
                }
            }
        }
All Usage Examples Of System.Collections.Queue::Dequeue