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