示例#1
0
        static void Main(string[] args)
        {
            var rb = new RingBufferSelector <int>(5);

            Dump(ref rb);
            for (int i = 0; i < 3; i++)
            {
                rb.Add(i);
            }
            Dump(ref rb);
            Dump(ref rb, true);
            //for (int i = 0; i < rb.Count; i++)
            //    Console.WriteLine("{0} {1} -{0} {2}",i, rb[i],rb[-i]);
            for (int i = 3; i <= 11; i++)
            {
                rb.Add(i);
            }
            Dump(ref rb);
            Dump(ref rb, true);
            //for (int i = 0; i < rb.Count; i++)
            //    Console.WriteLine("{0} {1} -{0} {2}", i, rb[i], rb[-i]);

            var se = rb.GetSelector(even);

            while (se.MoveNext())
            {
                Console.Write("{0} ", se.Current);
            }

            Console.ReadLine();
        }
示例#2
0
 static void Dump <T>(ref RingBufferSelector <T> rb, bool reverse = false)
 {
     if (reverse)
     {
         var re = rb.GetReverseEnumerator();
         while (re.MoveNext())
         {
             Console.Write("{0} ", re.Current);
         }
     }
     else
     {
         foreach (var i in rb)
         {
             Console.Write("{0} ", i);
         }
     }
     Console.WriteLine("");
 }