コード例 #1
0
 /// <summary>
 /// Returns an <see cref="IEnumerable{T}"/> of Dequeued Items from the Front of the
 /// <paramref name="deque"/>. The returned items will be in
 /// <see cref="Generic.IDeque{T}.DequeueFront"/> order and there may be as many as
 /// up to <paramref name="count"/> items.
 /// </summary>
 /// <param name="deque"></param>
 /// <param name="count"></param>
 /// <returns></returns>
 public static IEnumerable <object> DequeueFrontMany(this IDeque deque, int count = 1)
 {
     while (count-- > 0 && deque.Count > 0)
     {
         yield return(deque.DequeueFront());
     }
 }
コード例 #2
0
        /// <summary>
        /// Tries to Dequeue as Many <see cref="object"/> Items as possible. May return with
        /// a <paramref name="result"/> that contains up to <paramref name="count"/> number of
        /// them. The returned <paramref name="result"/> will be in
        /// <see cref="Generic.IDeque{T}.DequeueFront"/> order.
        /// </summary>
        /// <param name="deque"></param>
        /// <param name="result"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public static bool TryDequeueFrontMany(this IDeque deque, out IEnumerable <object> result, int count = 1)
        {
            result = new List <object>();

            while (count-- > 0 && deque.Count > 0)
            {
                ((IList <object>)result).Add(deque.DequeueFront());
            }

            return(result.Any());
        }