簡介:
查詢中執行的一些典型類型的操作。
使用
1.let
在查詢表達式中,存儲子表達式的結果有時很有用,這樣可以在隨後的子句中使用。 可以使用 let 關鍵字完成這一工作,該關鍵字可以創建一個新的範圍變量,並且用您提供的表達式的結果初始化該變量。 一旦用值初始化了該範圍變量,它就不能用於存儲其他值。 但如果該範圍變量存儲的是可查詢的類型,則可以對其進行查詢。
創建一個可以查詢自身的可枚舉類型。
使查詢只能對範圍變量 word 調用一次 ToLower。 如果不使用 let,則必須在 where 子句的每個語句中調用 ToLower。
class LetSample1
{
static void Main()
{
string[] strings =
{
"A penny saved is a penny earned.",
"The early bird catches the worm.",
"The pen is mightier than the sword."
};
// 把這個句子分成一組單詞,選擇第一個字母,讓其變成小寫
var earlyBirdQuery =
from sentence in strings
let words = sentence.Split(' ') //通過let獲取變量words
from word in words
let w = word.ToLower()
where w[0] == 'a' || w[0] == 'e'
|| w[0] == 'i' || w[0] == 'o'
|| w[0] == 'u'
select word;
// 執行查詢
foreach (var v in earlyBirdQuery)
{
Console.WriteLine("\"{0}\" starts with a vowel", v);
}
/*輸出:
"A" starts with a vowel
"is" starts with a vowel
"a" starts with a vowel
"earned." starts with a vowel
"early" starts with a vowel
"is" starts with a vowel
*/
Console.ReadKey();
}
}
2.orderby
對數據進行排序。 orderby 子句將使返回的序列中的元素按照被排序的類型的默認比較器進行排序。
升序,使用orderby...ascending.
降序,使用 orderby…descending 子句。
int[] numbers = { 2,1,3};
var queryNum =
from n in numbers
orderby n ascending //升序
select n;
List<int> list = queryNum.ToList();