Jak określić typ zmiennej zakresu w zapytaniu linq?Jak określić typ zmiennej zakresu w zapytaniu LINQ?
Odpowiedz
Wystarczy zadeklarować go ze zmienną samego:
var query = from string text in collection
where text.Length > 5
select text.ToUpper();
To przełoży się:
var query = collection.Cast<string>()
.Where(text => text.Length > 5)
.Select(text => text.ToUpper());
Próbowałem tego na zbiorze liczb przechowywanych jako ciągi 'var numbers = new [] {" 1 "," 2 "," 3 "," 4 "," 5 "}' ale to zapytanie LINQ 'numbers.Cast
@RBT: Nie, nie można rzutować z ciągu na int. Chcesz zacząć od 'numbers.Select (text => int.Parse (text))', dzięki czemu masz 'IEnumerable
do wykorzystania w przyszłości, to jest udokumentowane w punkcie 7.15.2.2 "Typy zmiennych Explicit wybiegu". –