C#3.01(initialization and Anonymous types )

1. Anonymous types

     public class Person
    {
        public int Age { get; set; }
        public string Name { get; set; }

        List<Person> friends = new List<Person>();
        public List<Person> Friends
        {
            get { return friends; }
        }

        Location home = new Location();
        public Location Home
        {
            get { return home; }
        }

        public Person()
        {
        }

        public Person(string name)
        {
            Name = name;
        }
    }

//  Initalizer
         class ObjectInitializer
    {
        static void Main()
        {
            Person tom = new Person
            {
                Name = "Tom",
                Age = 6,
                Home = { Town = "Reading", Country = "UK" },
                Friends =
                {
                    new Person { Name = "Alberto" },
                    new Person("Max"),
                    new Person { Name = "Zak", Age = 4 },
                    new Person("Ben"),
                    new Person("Alice")
                    {
                        Age = 6,
                        Home = { Town = "Twyford", Country="UK" }
                    }
                }
            };
        }
    }
 
  //  anonymous

      static void Main()
        {
            var tom = new  { Name = "Tom", Age = 6 };
            var holly = new { Name = "Holly", Age = 34 };
            var jon = new   { Name = "Jon", Age = 33 };

            Console.WriteLine("{0} is {1} years old", jon.Name, jon.Age);
        }
  

//AnonymousTypeInArray
 class AnonymousTypeInArray
    {
        static void Main()
        {
            var family = new[]                        
            {
                new { Name = "Holly", Age = 34 },     
                new { Name = "Jon", Age = 33 },       
                new { Name = "Tom", Age = 6 },        
                new { Name = "Robin", Age = 3 },      
                new { Name = "William", Age = 3 }     
            };

            int totalAge = 0;
            foreach (var person in family)
            {
                totalAge += person.Age;
            }
            Console.WriteLine("Total age: {0}", totalAge);
        }
    }


//  class Projection
    {
        static void Main()
        {
            List<Person> family = new List<Person>                
            {
                new Person { Name="Holly", Age=34 },
                new Person { Name="Jon", Age=33 },
                new Person { Name="Tom", Age=6 },
                new Person { Name="Robin", Age=4 },
                new Person { Name="William", Age=4 }
            };

            var converted = family.ConvertAll(delegate(Person person)
                { return new { person.Name, IsAdult = (person.Age >= 18) }; }
            );

            foreach (var person in converted)
            {
                Console.WriteLine("{0} is an adult? {1}",
                                  person.Name, person.IsAdult);
            }
        }
    }
  

發佈了32 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章