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