標籤:
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