1. 匿名型別
通過關鍵字var定義匿名型別,編譯器將根據運算子右側表示式的值來發出乙個強型別。
使用匿名型別時要遵守的一些基本規則:
◊ 匿名型別必須有乙個初始化值,而且這個值不能是空值(null),因為型別是根據初始化器推斷出來的;
◊ 匿名型別可以用於簡單型別,也可以用於複雜型別。用於定義簡單型別時,其價值不大。復合匿名型別需要有成員宣告;
◊ 匿名型別不能用於類的字段;
◊ 匿名型別可以在for迴圈中用作初始化器;
◊ 可以使用new關鍵字;陣列的初始化器必須使用new關鍵字;
◊ 匿名型別可以用於陣列;
◊ 所有匿名型別都派生自object型別;
var title = "1.1 復合匿名型別linq to object
";
var product = new ;1.2 在for/foreach語句中使用匿名型別
var fibonacci = newint ;
for (var i = 0; i < fibonacci.length; i++)
var fibonacci = new1.3 匿名型別與usingint ;
foreach (var number in
from f in fibonacci where f > 5
select
f)
using( var connection = new2. 陣列初始化器sqlconnection(connectionstring))
使用關鍵字new初始化陣列。
var fibonacci = new3. 匿名泛型方法int;
func factorial = delegate(longn)
long result = 1
;
for (int i = 2; i <= n; i++)
return
result;
};console.writeline(factorial(
6));
//4. 自動實現屬性using system.diagnostics;
func factorial = delegate(long
n)))
: n;
};console.writeline(factorial(
6));
public設定唯讀屬性:string productname
public5.物件初始化器和集合初始化器string productname
物件初始化器:在不呼叫類的建構函式以宣告性方式建立乙個新的物件,並設定該物件的各個屬性的值。
product product = new集合初始化器用來初始化乙個集合。product
;
list num = new list ;結合物件初始化器使用:
listproducts = new list,6. lambda表示式new product
};
lambda表示式是乙個匿名函式,它可以包含表示式和語句,並且可用於建立委託或表示式目錄樹型別。
lambda表示式的基本形式:
(input parameters) => expression其中,input parameters表示輸入引數,expression表示表示式。輸入引數的數量可以為空,1個或多個。
當輸入引數為空是,lambda表示式左邊的()不能省略。
() => console.writeline("empty
");
funcgetdatetime = () => datetime.now;當lambda表示式的輸入引數的數量為1時,輸入引數的()可以省略。
x => x * x;當lambda表示式的輸入引數的數量大於1時,輸入引數的()是必須的,且引數之間使用逗號分隔。
(x, y) => x * y;lambda的delegate形式轉換:
delegate(int x) ;7. 查詢表示式
var products = from p in8. 擴充套件方法ctx.products
where p.unitprice >10m
select p;
擴充套件方法是c#中乙個重要的特性,其對於linq的實現起著關鍵的作用。擴充套件方法在使用上類似於靜態方法,但在本質上其是例項方法。
擴充套件方法在引數前加上this關鍵字,引數的類似表示這個擴充套件方法要對這個型別進行擴充套件。
publicstatic
class
extensions$"
);
return
regex.ismatch(value);}}
Linq系列教程一 Linq介紹
前言 許多朋友在編寫以資料庫為中心的應用程式是時常會因為呼叫資料庫以及維護資料的關係等而煩惱,繁雜的sql字串語句,sql注入檢測,語法,字元長度等,有些時候為了在程式上更方便使用還要寫一些看似不重要只為了方便的儲存過程。現在好了從.net framework 3.5版本開始我們可以使用物件導向的方...
Linq原理1 LINQ簡介及其相關的C 擴充套件
using system using system.collections.generic using system.linq using system.text using system.collections class program 方案二 使用匿名的方法 int oddnum common...
C 3 0 入門系列 linq (一)
談到dlinq 就不得不先說linq 讓我們先看看什麼是linq linq 是language integrated query 的縮寫。那麼事實上dlinq 就是database language integrated query 的縮寫。linq 和dlinq 最大的區別就在與linq 是對記憶...