Beispiel #1
0
        //Takes the delegate that allows us do the shortened comparison call
        private static List <int> FilterArray(int[] intArray, delegateName predicate)
        {
            var result = new List <int>();

            foreach (var item in intArray)
            {
                if (predicate(item))
                {
                    result.Add(item);
                }
            }
            return(result);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            //delegateName evenpredicate = IsEven;
            delegateName evenpredicate = number => number % 2 == 0;

            Console.WriteLine($"Call isEven using a delegate variable: {evenpredicate(25)}");

            List <int> evenNumbers = FilterArray(numbers, evenpredicate);

            DisplayList("Used a predicate to filter numbers", evenNumbers);

            List <int> oddNumbers = FilterArray(numbers, number => { return(number % 2 != 0); });

            DisplayList("Used a predicate to filter numbers", oddNumbers);

            List <int> overFive = FilterArray(numbers, number => { return(number > 5); });

            DisplayList("Used a predicate to filter numbers", overFive);

            var values = new List <int> {
                3, 5, 3, 1, 2, 3, 4, 7, 88
            };

            values.Display();

            Console.WriteLine($"Min: {values.Min()}");
            Console.WriteLine($"Max: {values.Max()}");
            Console.WriteLine($"Average: {values.Average()}");
            Console.WriteLine($"Sum: {values.Sum()}");

            Console.WriteLine($"Sum implemented with aggregates: {values.Aggregate(0, (x, y) => x + y)}");
            Console.WriteLine($"Unknown1: {values.Aggregate(0, (x, y) => x + y*y)}");
            Console.WriteLine($"Unknown2: {values.Aggregate(1, (x, y) => x * y ) }");
            //Filters then orders
            values.Where(value => value % 2 == 0).OrderBy(value => value).Display();
        }