Пример #1
0
        /// <summary>
        /// 同じ内容を持つスタックのインスタンスを作成します。
        /// </summary>
        /// <typeparam name="T">スタックの要素の型を指定します。</typeparam>
        /// <param name="stack">コピー元のスタックを指定します。</param>
        /// <returns>指定したスタックと同じ内容を持つ、新しいスタックを返します。</returns>
        public static Gen::Stack <T> Clone <T>(this Gen::Stack <T> stack)
        {
            T[] values = stack.ToArray();

            Gen::Stack <T> ret = new Gen::Stack <T>(values.Length);

            for (int i = values.Length - 1; i >= 0; i--)
            {
                ret.Push(values[i]);
            }
            return(ret);
        }
Пример #2
0
        /// <summary>
        /// スタックの各要素を変換した新しいスタックを作成します。
        /// </summary>
        /// <typeparam name="T">変換前の要素の型を指定します。</typeparam>
        /// <typeparam name="U">変換後の要素の型を指定します。</typeparam>
        /// <param name="stack">変換前の要素を格納したスタックを指定します。</param>
        /// <param name="converter">要素の変換に使用するデリゲートを指定します。</param>
        /// <returns>要素を変換して出来たスタックを返します。</returns>
        public static Gen::Stack <U> ConvertAll <T, U>(this Gen::Stack <T> stack, Converter <T, U> converter)
        {
            T[] values = stack.ToArray();

            Gen::Stack <U> ret = new Gen::Stack <U>(values.Length);

            for (int i = values.Length - 1; i >= 0; i--)
            {
                ret.Push(converter(values[i]));
            }
            return(ret);
        }
Пример #3
0
 private static void PrintStack(Gen::Stack <int> st)
 {
     System.Console.Write("content of st: ");
     int[] starr = st.ToArray();
     for (int i = starr.Length - 1; i >= 0; i--)
     {
         int val = starr[i];
         System.Console.Write("{0}, ", val);
     }
     //foreach(int val in st)System.Console.Write("{0}, ",val);
     System.Console.WriteLine("(top);");
     System.Console.WriteLine("count of st: {0}", st.Count);
 }