Example #1
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
            });
        }