初始化器的应用及语法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Initialter
{
    class Program
    {
        static void Main(string[] args)
        {

            //ObjectInitializer();
            //InitializerAnonyousType();
             //CollectionInitilaizer();

        }

        //各种对象初始化
        private static void ObjectInitializer()
        {
            var student1 = new StudentName("Meimei", "wang");
            //调用构造函数
            var student2 = new StudentName { FirstName = "Meimei", LastName = "wang" };
            var student3 = new StudentName { ID = 100 };
            var student4 = new StudentName("Lei", "Li") { ID = 101 };
            Console.WriteLine(student1.ToString());
            Console.WriteLine(student2.ToString());
            Console.WriteLine(student3.ToString());
            Console.WriteLine(student4.ToString());
        }

        //匿名类和匿名类的使用
        private static void InitializerAnonyousType()
        {
            //匿名类,是只读的
            var pet = new { Age = 10, Name = "Miaomiao" };

            var Students = new List<StudentName> { new StudentName("Li", "Li"), new StudentName("Mei", "Mei") };
            var StudentFrom = new List<StudentFrom>
            {
                new StudentFrom{FirstName="Li",City="Beijing"},
                 new StudentFrom{FirstName="Wang",City="Shanghai"},
            };

            var joinquery = from s in Students
                            join f in StudentFrom on s.FirstName equals f.FirstName
                            select new { FirstName = s.FirstName, LastName = s.LastName, City = f.City };
            foreach (var temp in joinquery)
            {
                Console.WriteLine("{0}{1}{2}", temp.FirstName, temp.LastName, temp.City);
            }
        }

        //集合初始化器和dictionary初始化
        private static void CollectionInitilaizer()
        {
            var students = new List<StudentName>
            {
                new StudentName{FirstName="Mei",LastName="Mei",ID=100},
                new StudentName(){FirstName="Lei",LastName="Lei",ID=101},
                new StudentName("Li","Li"){ID=102},
                null
            };

            foreach (var s in students)
            {
                if (s != null)
                {
                    Console.WriteLine(s.ToString());
                }                
            }

            Dictionary<int, StudentName> studentsdic = new Dictionary<int, StudentName>
            {
                {111,new StudentName{FirstName="Mei",LastName="Mei",ID=100}},
                {112,new StudentName(){FirstName="Lei",LastName="Lei",ID=101}}
            };

            foreach (var s in studentsdic)
            {
                Console.WriteLine(s.Value.ToString());
            }
        }
    }

    public class StudentName
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int ID { get; set; }

        public StudentName()
        {
        
        }
        public StudentName(string first,string last)
        {
            FirstName = first;
            LastName = last;
        }
        public override string ToString()
        {
            return FirstName + " " + ID;
        }
    }

    public class StudentFrom
    {
        public string FirstName { get; set; }

        public string City { get; set; }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值