Klauzula Let (odwołanie w C#)
W wyrażeniu kwerendy czasem jest użyteczne do przechowywania wynik wyrażenia podrzędnego w celu użycia go w kolejnych klauzul.W tym z let słowa kluczowego, która tworzy nową zmienną zakres i inicjuje ją z wynikiem wyrażenia, należy dostarczyć.Po inicjowane z wartością, zmiennej zakresu nie można użyć do przechowywania innej wartości.Jednakże jeśli zmienna zakres przechowuje typu queryable, to można przeszukiwać.
Przykład
W poniższym przykładzie let jest używany na dwa sposoby:
Aby utworzyć agregującym typu, który mogą sobie być wyszukiwane.
Aby umożliwić kwerendy do wywołania ToLower tylko jeden raz na zmiennej zakres word.Bez korzystania z let, trzeba wywołać ToLower w predykacie, każdy w where klauzuli.
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."
};
// Split the sentence into an array of words
// and select those whose first letter is a vowel.
var earlyBirdQuery =
from sentence in strings
let words = sentence.Split(' ')
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;
// Execute the query.
foreach (var v in earlyBirdQuery)
{
Console.WriteLine("\"{0}\" starts with a vowel", v);
}
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
"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
*/
Zobacz też
Zadania
Porady: obsługa wyjątków w wyrażeniach kwerend (Przewodnik programowania w języku C#)
Koncepcje
Wyrażenia kwerend LINQ (Przewodnik programowania w języku C#)