예제 #1
0
        static void Main()
        {
            Test t = new Test();

            t.Snippet1();
        }
예제 #2
0
파일: Program.cs 프로젝트: Snk89/C-sharp
        static void Main(string[] args)
        {
            List <Test> list = new List <Test>()
            {
                new Test()
                {
                    Title = "One", Evaluation = true, Date = DateTime.Now
                },
                new Test()
                {
                    Title = "Two", Evaluation = false, Date = new DateTime(2020, 05, 01)
                },
                new Test()
                {
                    Title = "Maybe", Evaluation = true, Date = new DateTime(2010, 05, 01)
                },
                new Test()
                {
                    Title = "Nothing", Evaluation = false, Date = new DateTime(2020, 05, 01)
                },
                new Test()
                {
                    Title = "Something", Evaluation = false, Date = new DateTime(2001, 05, 10)
                },
            };
            //PARA O PROJETO
            //1 - Inserir os objetos dados numa pilha e numa fila respetivamente

            Stack <Test> stack = new Stack <Test>(list);
            Queue <Test> queue = new Queue <Test>(list);

            //2 - Imprimir essas estruturas de dados

            foreach (Test t in stack)
            {
                Console.WriteLine(stack.Peek());
                stack.Push(t);
            }
            foreach (Test t in queue)
            {
                Console.WriteLine(queue.Peek());
                queue.Enqueue(t);
            }
            Console.ReadKey();

            //3 - Filtrar as estruturas de dados se necessário (Date < ultimos 30 dias)

            foreach (Test t in stack)
            {
                if (Convert.ToInt32(stack.Peek().Date) >= (DateTimeOffset.Now.Day - 30))
                {
                    stack.Pop();
                }
            }

            //4 - Copiar as estruturas de dados para um Array

            Test[] array = new Test[stack.Count];
            stack.CopyTo(array, 0);
            Test[] array2 = new Test[queue.Count];
            array = queue.ToArray();

            //5 - Assegurar que a lista original só tem os dados que não foram enviados para o Array
            int i = 0;

            foreach (Test t in list)
            {
                if (list[i] == array[i])
                {
                    list.Remove(t);
                }
                i++;
            }

            //6 - Voltar a guardar os dados dos arrays nas respetivas estruturas de dados

            Stack <Test> stack2 = new Stack <Test>(array);
            Queue <Test> queue2 = new Queue <Test>(array);

            //7 - Imprimir os dados finais, ordenados
            int j = 0;

            list.OrderBy(t => t);
            foreach (Test t in list)
            {
                Console.WriteLine(list[j].Title);
                Console.WriteLine(list[j].Evaluation);
                Console.WriteLine(list[j].Date);
                j++;
            }
        }