C# funkcje obsługujące LINQ
Następujących sekcji wprowadza nowe konstrukcje języka wprowadzone w C# 3.0.Chociaż te nowe funkcje są używane do stopnia z LINQ kwerend, nie są one ograniczone do LINQ i mogą być używane w dowolnym kontekście, gdzie można je znaleźć przydatne.
Wyrażenia w kwerendzie
Wyrażenia kwerendy użyj deklaracyjne składnię SQL lub XQuery do kwerendy za pośrednictwem interfejsu IEnumerable kolekcje.Przy kompilacji składni kwerendy czasu jest konwertowany na wywołania metody do LINQ implementacja dostawcy metod kwerendy standardowe rozszerzenie operatora.Aplikacje kontroli operatorów standardowej kwerendy, które znajdują się w zasięgu określając odpowiedni obszar nazw z using dyrektywy.Następujące wyrażenie kwerendy pobiera tablicę ciągów, grupuje je zgodnie z pierwszego znaku w ciągu i zamówienia grup.
var query = from str in stringArray
group str by str[0] into stringGroup
orderby stringGroup.Key
select stringGroup;
Aby uzyskać więcej informacji, zobacz Wyrażenia w kwerendzie LINQ (Podręcznik programowania C#).
Niejawnie wpisane zmienne (var)
Zamiast jawne określenie typu, kiedy oświadczają i zainicjować zmienną, można użyć var. modyfikator nakazać kompilatorowi rozpoznać i przypisać typ, jak pokazano poniżej:
var number = 5;
var name = "Virginia";
var query = from str in stringArray
where str[0] == 'm'
select str;
Zmienne zadeklarowane jako var są po prostu jako wymagająca jako zmienne typu, którego można jawnie określić.Użycie var ułatwia można utworzyć typy anonimowe, ale może być używanych dla dowolnej zmiennej lokalnej.Tablice mogą być także zadeklarowana ze wpisując niejawne.
Aby uzyskać więcej informacji, zobacz Wpisane niejawnie zmiennych lokalnych (C# Programming Guide).
Obiektów i kolekcji inicjatorów
Inicjatory obiektów i kolekcji należy zainicjować obiekty bez jawnego wywołania konstruktora dla obiektu.Inicjatory są zazwyczaj używane w wyrażeniach kwerend danych źródłowych one projektu do nowego typu danych.Przy założeniu klasę o nazwie Customer z publicznych Name i Phone właściwości, inicjator obiektu mogą być używane, jak w poniższym kodzie:
Customer cust = new Customer { Name = "Mike", Phone = "555-1212" };
Aby uzyskać więcej informacji, zobacz Obiektów i kolekcji inicjatorów (Podręcznik programowania C#).
Typy anonimowe
Typ anonimowy jest skonstruowany przez kompilator i nazwa typu jest dostępna tylko dla kompilatora.Typy anonimowe zapewniają wygodny sposób, aby zgrupować zestaw właściwości tymczasowo w wyniku kwerendy bez konieczności zdefiniować oddzielny, nazwany typ.Typy anonimowe są inicjowane z nowego wyrażenia i inicjator obiektu, jak pokazano poniżej:
select new {name = cust.Name, phone = cust.Phone};
Aby uzyskać więcej informacji, zobacz Typy anonimowe (Podręcznik programowania C#).
Rozszerzenie metody
Metoda rozszerzenie jest statyczna metoda, która może być skojarzony z typem, tak, że może zostać wywołana, tak jakby był on metody instancji typu.Ta funkcja umożliwia, w efekcie "Dodaj" nowych metod do istniejących typów bez faktycznie modyfikowania ich.Operatory kwerendy standardowe to zestaw metod rozszerzenia, które dostarczają LINQ kwerendy funkcjonalność dla dowolnego typu, który implementuje IEnumerable<T>.
Aby uzyskać więcej informacji, zobacz Rozszerzenie metody (Podręcznik programowania C#).
Wyrażenia lambda
Wyrażenie lambda jest funkcji śródwierszowej, który używa = > operator do oddzielenia wprowadzanie parametrów z treści funkcji i mogą być konwertowane w czasie kompilacji, pełnomocnik lub drzewa wyrażenie.W LINQ programowania, można napotkać wyrażenia lambda podczas wywołań metody bezpośredniej do operatorów standardowej kwerendy.
Aby uzyskać więcej informacji zobacz:
Właściwości auto wdrożone
Właściwości auto wdrożone należy bardziej zwarta deklaracji właściwości.Przy deklarowaniu właściwości, jak pokazano w poniższym przykładzie, kompilator utworzy pole prywatne, anonimowe wykonywanie kopii, która nie jest dostępna, z wyjątkiem za pośrednictwem właściwości pobierających i ustawiających.
public string Name {get; set;}
Aby uzyskać więcej informacji, zobacz Właściwości auto wdrożone (Podręcznik programowania C#).
Zobacz też
Koncepcje
Visual Basic funkcje obsługujące LINQ