Example #1
0
        public void ExampleReduction()
        {
            var       customers = new CustomerGenerator().Generate(5);
            var       customersWithLotsOfLogins         = customers.Where(c => c.LoginCount > 103);
            var       customersWithOverOneMillionLogins = customers.Where(c => c.LoginCount > 1_000_000);
            var       customer3ViaSingle            = customers.Single(c => c.Id == 3);
            var       customer3ViaWhereSingle       = customers.Where(c => c.Id == 3).Single();
            var       customersWithoutFirstCustomer = customers.Skip(1);
            var       firstThreeCustomers           = customers.Take(3);
            const int pageSize       = 2;
            var       customersPage1 = customers.Skip(0).Take(pageSize);
            var       customersPage2 = customers.Skip(pageSize).Take(pageSize);

            var pager    = new Pager <Customer>(customers, pageSize);
            var newPage1 = pager.Next();
            var newPage2 = pager.Next();
            var newPage3 = pager.Next();
            var newPage4 = pager.Next();

            var customersFromActiveOnward     = customers.SkipWhile(c => !c.IsActive);
            var allExceptLastTwoCustomers     = customers.SkipLast(2);
            var initialSetOfInactiveCustomers = customers.TakeWhile(c => !c.IsActive);
            var lastTwoCustomers = customers.TakeLast(2);
            var numbers          = new int[] { 3, 1, 1, 2, 1, 3 };
            var distinct         = numbers.Distinct();
        }
Example #2
0
        public void ExampleConversionItems()
        {
            var numbersAsObjects = new object[] { 1, 2, 3, 4, 5 };
            var numbersAsInts    = numbersAsObjects.Cast <int>();
            var customers        = new CustomerGenerator().Generate(5);
            var users            = customers.Select(c => new User()
            {
                Id              = c.Id,
                Name            = c.FirstName + " " + c.LastName,
                FavoriteNumbers = new int[0]
            });
            var inactivePeople = customers
                                 .Where(c => !c.IsActive)
                                 .Select(c => new { c.Id, Name = c.LastName + ", " + c.FirstName })
                                 .OrderBy(p => p.Name);

            var usersWithFavoriteNumbers = new User[]
            {
                new User()
                {
                    Id = 1, Name = "User1", FavoriteNumbers = new int[] { 7 }
                },
                new User()
                {
                    Id = 2, Name = "User2", FavoriteNumbers = new int[] { 1, 3, 7 }
                },
                new User()
                {
                    Id = 3, Name = "User3", FavoriteNumbers = new int[] { 2, 3, 5, 7, 11 }
                },
                new User()
                {
                    Id = 4, Name = "User4", FavoriteNumbers = new int[] { 1, 2 }
                }
            };
            var allFavoriteNumbers             = usersWithFavoriteNumbers.SelectMany(u => u.FavoriteNumbers);
            var distinctOrderedFavoriteNumbers = usersWithFavoriteNumbers
                                                 .SelectMany(u => u.FavoriteNumbers)
                                                 .Distinct()
                                                 .OrderBy(n => n);

            var infos = new PlayerInfo[]
            {
                new PlayerInfo()
                {
                    PlayerId = 1, Name = "Name1", CreatedDate = DateTime.Parse("01/01/2001")
                },
                new PlayerInfo()
                {
                    PlayerId = 2, Name = "Name2", CreatedDate = DateTime.Parse("02/02/2002")
                }
            };
            var metadatas = new PlayerMetadata[]
            {
                new PlayerMetadata()
                {
                    PlayerId = 1, Tags = new string[] { "strong slow" }
                },
                new PlayerMetadata()
                {
                    PlayerId = 2, Tags = new string[] { "weak fast" }
                }
            };
            var players = infos.Zip(metadatas, (i, m) => new Player()
            {
                Id          = i.PlayerId == m.PlayerId ? i.PlayerId : Int32.MinValue,
                Name        = i.Name,
                CreatedDate = i.CreatedDate,
                Tags        = m.Tags
            });
        }