Udostępnij za pośrednictwem


LINQ i typy ogólne (C#)

LINQkwerendy oparte są na typy rodzajowe, które zostały wprowadzone w wersji 2.0 .NET Framework.Nie musisz dogłębna znajomość generyczne przed rozpoczęciem pisania kwerend.Jednakże można zrozumieć dwóch podstawowych pojęciach:

  1. Podczas tworzenia instancji klasy rodzajowej kolekcji takich jak List, "T" Zamień typ obiektów, które będzie sprawować listy.Na przykład, lista ciągów wyraża się jako List<string>oraz wykaz Customer obiektów jest wyrażana jako List<Customer>.Lista ogólna ma jednoznacznie określony i oferuje wiele korzyści nad kolekcje, które przechowują ich elementy, jak Object.Jeśli użytkownik spróbuje dodać Customer do List<string>, otrzymasz błąd w czasie kompilacji.Ponieważ nie trzeba wykonywać typu run-time odlewania, jest łatwy w użyciu kolekcji rodzajowy.

  2. IEnumerableto interfejs, który umożliwia klasy rodzajowej kolekcji mają być wyliczone przy użyciu foreach instrukcji.Rodzajowej kolekcji klasy pomocy technicznej IEnumerable po prostu jako nierodzajową kolekcji klasy, takie jak ArrayList obsługuje IEnumerable.

Aby uzyskać więcej informacji na temat generyczne, zobacz Typy ogólne (Przewodnik programowania w języku C#).

IEnumerable &lt;T&gt; zmienne w kwerendach LINQ

LINQzmienne kwerendy są wpisywane jako IEnumerable lub typu pochodnego, takich jak IQueryable.Kiedy zobaczysz zmienna kwerendy, która jest wpisana jako IEnumerable<Customer>, po prostu oznacza, że kwerendy, gdy jest wykonywane, da sekwencji zero lub więcej Customer obiektów.

IEnumerable<Customer> customerQuery =
    from cust in customers
    where cust.City == "London" 
    select cust;

foreach (Customer customer in customerQuery)
{
    Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

Aby uzyskać więcej informacji, zobacz Relacje typu w operacjach kwerend LINQ (C#).

Najmu kompilator uchwyt rodzajowy typ zgłoszenia

Jeśli wolisz, można uniknąć generic syntax, za pomocą var. słowa kluczowego.var Słowa kluczowego nakazuje kompilatorowi rozpoznać typ zmiennej kwerendy patrząc na źródła danych, określonych w from klauzuli.Poniższy przykład tworzy ten sam kod skompilowany w poprzednim przykładzie:

var customerQuery2 = 
    from cust in customers
    where cust.City == "London" 
    select cust;

foreach(var customer in customerQuery2)
{
    Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

var Słowo kluczowe jest przydatne, gdy typ zmiennej jest oczywiste, lub gdy nie jest to ważne jawnie określić zagnieżdżone typy rodzajowe, takie jak te, które są produkowane przez grupy kwerend.Ogólnie rzecz biorąc, firma Microsoft zaleca użycie var, okazuje się, że to może poprawić czytelność kodu trudniejsze dla innych użytkowników.Aby uzyskać więcej informacji, zobacz Niejawnie wpisane zmienne lokalne (Przewodnik programowania w języku C#).

Zobacz też

Informacje

Typy ogólne (Przewodnik programowania w języku C#)

Inne zasoby

Wprowadzenie do korzystania z LINQ w C#