Пример #1
0
        static void UsingFunc()
        {
            List <Product> productList = new List <Product>();
            DataDisplay    display     = new DataDisplay();

            productList.Add(new Product("Iphone 11", 11000));
            productList.Add(new Product("TV LG 70'", 7000));
            productList.Add(new Product("PS5", 2500));

            Func <Product, string> delegateFunc = product => product.ProductName.ToUpper();
            List <string>          nameList     = productList.Select(delegateFunc).ToList();

            display.Display(nameList);
        }
Пример #2
0
        static void UsingFilter()
        {
            DataDisplay    display     = new DataDisplay();
            Filter         filter      = new Filter();
            List <Product> ProductList = new List <Product>();

            ProductList.Add(new Product("Iphone 11", 11000));
            ProductList.Add(new Product("TV LG 70'", 7000));
            ProductList.Add(new Product("PS5", 2500));

            Console.WriteLine("Option the filters: [1] Filter by name  [2] Filter by price  [3] Cash payment  [4] Remove product per value");
            int option = int.Parse(Console.ReadLine());

            if (option == 1)
            {
                ProductList.Sort(filter.FilterName);
            }
            else if (option == 2)
            {
                ProductList.Sort(filter.FilterPrice);
            }
            else if (option == 3)
            {
                DiscountService discount = new DiscountService();
                ProductList.ForEach(discount.disc);
            }
            else if (option == 4)
            {
                Console.Write("Waht value: ");
                double value = double.Parse(Console.ReadLine());
                //Predicate é um delegate que retorna um bool.
                Predicate <Product> removeItemPerValue = (prod) => prod.Price >= value;
                ProductList.RemoveAll(removeItemPerValue);
            }
            else
            {
                Console.WriteLine("Invalid option!");
            }

            display.Display(ProductList);
        }