Esempio n. 1
0
        private static void Where_Basic()
        {
            foreach (Person p in PersonsDatabase.AllPersons())
            {
                p.Print();
            }

            Console.WriteLine("-----------------------------------------------------");
            Console.WriteLine("Persons over 14 years with full name starting with 'M'");
            Console.WriteLine("-----------------------------------------------------");

            var query = PersonsDatabase.AllPersons()
                        .Where(p => (p.Age >= 14) &&
                               p.FullName.StartsWith("M"));

            // Or:
            //var query = from p in PersonsDatabase.AllPersons()
            //            where (p.Age >= 14) && p.FullName.StartsWith("M")
            //            select p;

            foreach (Person p in query)
            {
                p.Print();
            }
        }
Esempio n. 2
0
        private static void GroupBy_Basic()
        {
            var query = from p in PersonsDatabase.AllPersons()
                        where p.Age > 30
                        orderby p.DateOfBirth.Year ascending
                        group p by p.DateOfBirth.Year into yearsGroups
                        where (yearsGroups.Key >= 1950) && (yearsGroups.Key <= 1970)
                        select yearsGroups;

            //var query = PersonsDatabase.AllPersons()
            //    .Where(p => p.Age > 30)
            //    .OrderBy(p => p.DateOfBirth.Year)
            //    .GroupBy(p => p.Age);

            foreach (var group in query)
            {
                Console.WriteLine("--------------");
                Console.WriteLine($"Persons born in year: {group.Key}");
                Console.WriteLine("--------------");

                foreach (var p in group)
                {
                    p.Print();
                }
            }
        }
Esempio n. 3
0
        private static void Select_Basic_And_With_Index()
        {
            var query = PersonsDatabase.AllPersons()
                        .Select((p, index) => new { Name = p.FullName, Index = index });

            //IEnumerable<string> query = from p in PersonsDatabase.AllPersons()
            //                            select p.FullName;

            foreach (var personNameAndIndex in query)
            {
                Console.WriteLine($"{personNameAndIndex.Index}) {personNameAndIndex.Name}");
            }
        }
Esempio n. 4
0
        private static void OrderBy_Basic()
        {
            //var query = PersonsDatabase.AllPersons()
            //    .Where(p => (p.Age > 20) && (p.Age < 40))
            //    .OrderBy(p => p.Age)
            //    .ThenByDescending(p => p.FullName);

            var query = from p in PersonsDatabase.AllPersons()
                        where (p.Age > 20) && (p.Age < 40)
                        orderby p.Age ascending, p.FullName descending
            select p;

            foreach (Person p in query)
            {
                p.Print();
            }
        }
Esempio n. 5
0
        private static void Where_With_Index()
        {
            int index = 0;

            foreach (Person p in PersonsDatabase.AllPersons())
            {
                p.Print(index);
                index++;
            }

            Console.WriteLine("-----------------------------------------------------");
            Console.WriteLine("Persons over 14 years with full name starting with 'M'");
            Console.WriteLine("-----------------------------------------------------");

            var query1 = PersonsDatabase.AllPersons()
                         .Where(p => (p.Age >= 14) &&
                                p.FullName.StartsWith("M"));

            //var query1 = from p in PersonsDatabase.AllPersons()
            //            where (p.Age >= 14) && p.FullName.StartsWith("M")
            //            select p;

            index = 0;
            foreach (Person p in query1)
            {
                p.Print(index);
                index++;
            }

            Console.WriteLine("-----------------------------------------------------");
            Console.WriteLine("Persons over 14 years with full name starting with 'M' and on even index");
            Console.WriteLine("-----------------------------------------------------");

            var query2 = query1.Where((p, index) => index % 2 == 0);

            foreach (Person p in query2)
            {
                p.Print();
            }
        }