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(); }