天天看點

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

繼續閱讀