=> 標記稱作 lambda 運算子。
該標記在 lambda 表示式中用來將左側的輸入變數與右側的 lambda 體分離。
lambda 表示式是與匿名方法類似的內聯表示式,但更加靈活;在以方法語法表示的 linq 查詢中廣泛使用了 lambda 表示式。
有關更多資訊,請參見lambda 表示式(c# 程式設計指南)。
下面的示例演示兩種查詢並顯示最短的字串的長度在字元陣列中的字串。
該示例的第一部分將 lambda 表示式 (w => w.length) words 於陣列的每個元素都使用 min``1 方法查詢最小長度。
為了進行比較,該示例的第二部分演示乙個較長的解決方案使用查詢語法執行相同操作。
c#
// of the words array.
int shortestwordlength = words.min(w => w.length);
console.writeline(shortestwordlength);
// compare the following code that uses query syntax.
// get the lengths of each word in the words array.
var query = from w in words
select w.length;
int shortestwordlength2 = query.min();
console.writeline(shortestwordlength2);
// output:
// 5
// 5
=> 運算子具有與賦值運算子 (=) 相同的優先順序,並且是右結合運算子。
可以顯式指定輸入變數的型別或讓編譯器推斷型別;仍,該變數是強型別在編譯時。
當指定型別時,必須將該型別括號中的名稱和變數名,如下例所示。
int shortestwordlength = words.min((string w) => w.length);
下面的**演示如何編寫採用兩個引數標準查詢運算子 enumerable.where``1 的超載入的 lambda 表示式。
由於 lambda 表示式具有多個引數,必須括在括號中的引數。
第二個引數,index,表示當前元素的索引集合中的。
where 表示式返回長度小於其在陣列的索引位置小於的任何字串。
c#
staticvoid main(string args)
; console.writeline("example that uses a lambda expression:");
var shortdigits = digits.where((digit, index) => digit.length < index);
foreach (var sd in shortdigits)
// compare the following code, which arrives at the same list of short
// digits but takes more work to get there.
console.writeline("\nexample that uses a for loop:");
list shortdigits2 = new list();
for (var i = 0; i < digits.length; i++)
foreach (var d in shortdigits2)
// output:
// example that uses a lambda expression:
// five
// six
// seven
// eight
// nine
// example that uses a for loop:
// five
// six
// seven
// eight
// nine
}
運算子(C 參考)
先給出微軟的demo例子,也可以下面的 鏈結如下 用法 對於預定義的值型別,如果運算元的值相等,則相等運算子 返回 true,否則返回false。對於 string 以外的引用型別,如果兩個運算元引用同乙個物件,則 返回true。對於string型別,比較字串的值。備註 使用者定義的值型別可過載 運...
運算子(C 參考)
運算子稱作 null 合併運算子。如果此運算子的左運算元不為 null,則此運算子將返回左運算元 否則返回右運算元。可以為 null 的型別可以表示型別的域中的值,或者值可以是未定義的 在這種情況下,值為 null 當左運算元具有乙個值為 null 的可以為 null 的型別時,可以使用?運算子的語...
運算子(C 參考)
運算子稱為 null 合併運算子,用於定義可以為 null 值的型別和引用型別的預設值。如果此運算子的左運算元不為 null,則此運算子將返回左運算元 否則返回右運算元。備註可以為 null 的型別可以包含值,或者可以是未定義的。運算子定義當可以為 null 的型別分配給非可以為 null 的型別時...