天天看点

C#3.0新特性小结(2)

c#3.0中除了自动属性外,还添加:

隐含类型局部变量(Local Variable Type Inference)

匿名类型(Anonymous Types)

对象与集合初始化器(Object and Collection Initializers)

代码演示实例:

//测试数组  

        public static void TestArray()  

        {  

            //测试数组  

            var intArray = new[] { 120, 110, 119 };  

            var strArray = new[] { "TreeyLee", "JFlyZhao", "JFlyingchen" };  

            var objArray = new[] {   

             //初始化对象  

            new {username="马鹏飞",userpass="AdminDoucment"},  

            new {username="周静",userpass="周界"}  

           };  

            //对单个变量赋值  

            var seta =intArray[0];  

            var setb = strArray[1];  

            var setc = objArray[1].userpass;//可以副单个属性 也可副单个对象objArray[0]  

           //打印当前数据  

            Console.WriteLine("seta:" + seta + "\nsetb:" +setb+ "\nsetc:" + setc);  

        }  

    /// <summary>  

    /// 综合测试匿名类型  

    /// </summary>  

  public class TotalTestAnnoy  

  {  

      //定义属性  

      public string username { get; set; }  

      public string userpass { get; set; }  

      public int age { get; set; }  

      //定义测试方法  

      public static void TestMethods()  

      {  

          //集合初始化器  

          List<TotalTestAnnoy> TotalList = new List<TotalTestAnnoy> {   

           //不能直接写new {} 集合器中只能装TotalTestAnnoy对象,不能var类型  

            new TotalTestAnnoy{username="老顾",userpass="laogu",age=21},  

            new TotalTestAnnoy{username="周静",userpass="zhoujing",age=26},  

            new TotalTestAnnoy{username="陈凯",userpass="chenkai",age=21}  

          };  

          //定义匿名类型  

          var GetTotalList = from newtotallist in TotalList  

                             where newtotallist.age == 21//吧结果定义成一个新对象 只包含两个属性newname 和newpass  

                             select new { newname = newtotallist.username, newpass = newtotallist.userpass };  

          //循环打印新对象  

          foreach(var getfirst in GetTotalList)  

          {  

              //打印新实例结果  

              Console.WriteLine("定义新实例newname:"+getfirst.newname+"\nnewpass:\n"+getfirst.newpass);  

          }  

      }  

  } 

本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765463