LinQ C#3.0

來源:互聯網
上載者:User

標籤:

LINQ (Language-Integrated Query,Language-integrated Query (LINQ))。

LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML,它們分別查詢和處理對象資料(如集合)、關係資料(如SQL Server資料庫等)、DataSet對象資料和XML結構資料。    主要對資料進行操作

-----------------------------------------------------

LINQ 文法基礎——C#3.0

-------------------------------------------

使用var建立隱型局部變數

Int number=2008;    String [] strs=new string [5];                           UserInfo ui=new UserInfo();

 

var number=2008;    var strs=new string[]{“2008”,”08”,”05”,”20”};             var ui=new UserInfo();

 

var關鍵字指示編譯器能夠根據變數的初始設定式推算出該變數的類型,即使用var關鍵字聲明變數時隱藏了該變數的類型。Var關鍵字可以在以下四種情況下使用。

1.聲明局部變數;

2.For語句中;

3.Foreach語句中;

4.Using 語句中;

 

對象初始化器

使得開發人員可以不調用類的建構函式就能夠以聲明性方式建立一個新的對象,並設定該對象的各個屬性的值。

 

UserInfo ui = new UserInfo        {            Username = "張三",            Useraddr = "武漢",            Userage = "23",            Usersex = "男",            Usertel = "027-50459016"       //userInfo裡面有的屬性可以直接設定        };

 

集合初始化器

合初始化器用來初始化一個集合,它由一系列元素組成,並封閉於“{”和 “}”標記內。

 List<int> numbers = new List<int> () { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //可以在{}裡面初始化一個集合

 

建立匿名型別對象

使用new操作符和匿名對象初始化器能夠建立一個新的對象。

//建立匿名型別的對象        var user = new { ID = 1, USERNAME = "張三", USERSEX = "男", USERADDR = "武漢" };

 

建立隱形數組

隱形數組和匿名型別對象比較相似。隱形數組使用var關鍵字和數組初始化器建立,且數組初始化器中的元素的資料類型必須都能夠隱式轉換為同一個資料類型(不能為null)的元素

var numbers = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var strs = new[] { "he", "she", "it" };

 

Lambda運算式  :使用委託的位子就可以使用Lambda運算式

  Lambda運算式是一個匿名函數,它可以包含運算式和語句,並且可用於建立委託或運算式分類樹類型。Lambda運算式由輸入參數、Lambda運算子(=>)和運算式(或語句塊)構成。Lambda運算式的基本形式如下:

           (input parameters) => expression

input parameters表示輸入參數,expression表示運算式。輸入參數位於Lambda運算子的左邊,運算式或語句塊位於Lambda運算子的右邊,Lambda運算子 =>讀作 “goes to”

    //聲明一個委任 ,跟Clss同級    delegate int MyDelegate(int i);
   delegate void Md2(); class Program { static void Main(string[] args) { MyDelegate md = delegate(int x) //普通的委任 { return x * x; }; MyDelegate md = (x) => x * x; //Lambda運算式 int a = md(3); Console.WriteLine(a);
        Md2 md2 = () => { Console.WriteLine("Hello!!"); }; //Lambda運算式
       md2(); } }
     (x , y) =>  {   int  result = x*y;  Response.Write(result.ToString());     }    //多語句時使用語句塊{}

 哪裡用的上:   例如:    集合裡面的Find(),FindAll()的參數就是委託

  List<int> ll = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 0 };            foreach (var item in ll.FindAll((x) => x % 2 == 0))            {                Console.WriteLine(item);                            }

 

LinQ C#3.0

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.