C# funkce podporující LINQ
Následující části jsou popsány nové konstrukce jazyka C# 3.0 zavedena.Ačkoli tyto nové funkce se používají k míru s LINQ dotazy, nejsou omezeny na LINQ a lze je použít v libovolném kontextu kde můžete najít užitečné.
Výrazy dotazu
Dotazy výrazy používají deklarativní syntaxi, která je podobná SQL nebo XQuery dotazu prostřednictvím kolekce IEnumerable.Při kompilaci čas syntaxe dotazu je převeden na volání metody LINQ poskytovatele provádění metod rozšíření standardního dotazu operátor.Aplikace řízení standardní dotaz operátory, které jsou v rozsahu uvede příslušný obor názvů s using směrnice.Následující výraz dotazu trvá pole řetězců, seskupí je podle prvního znaku v řetězci a objednávky skupin.
var query = from str in stringArray
group str by str[0] into stringGroup
orderby stringGroup.Key
select stringGroup;
Další informace naleznete v tématu LINQ dotazu výrazy (Příručka programování C#).
Implicitně zadané proměnné (var)
Místo určení typu, explicitně deklarovat a proměnnou inicializujete, můžete použít var modifikátor nacházela kompilátor odvodit a přiřadit typu, jak je znázorněno zde:
var number = 5;
var name = "Virginia";
var query = from str in stringArray
where str[0] == 'm'
select str;
Proměnné deklarované jako var jsou stejně jako silnými jako proměnné typu explicitně zadat.Použití var umožňuje vytvořit anonymní typy, ale může sloužit pro všechny místní proměnné.Matice lze také deklarovat s implicitní psát.
Další informace naleznete v tématu Implicitně zadali místní proměnné (C# programování Guide).
Objekt a Inicializátory kolekce
Inicializátory objektů a kolekce provést inicializaci objekty bez explicitní volání konstruktoru objektu.Inicializátory se obvykle používají ve výrazech dotazu při jejich zdroj dat projektu do nového datového typu.Za předpokladu, že třídu s názvem Customer s veřejnou Name a Phone vlastnosti objektu inicializátor lze použít jako v následujícím kódu:
Customer cust = new Customer { Name = "Mike", Phone = "555-1212" };
Další informace naleznete v tématu Objekt a kolekce Inicializátory (Příručka programování C#).
Anonymní typy
Anonymní typ je vyrobeno kompilátorem a název typu je k dispozici kompilátoru.Anonymní typy poskytují pohodlný způsob seskupení vlastností dočasně ve výsledku dotazu bez nutnosti definovat zvláštní typ pojmenovaného.Anonymní typy jsou inicializovány s nový výraz a inicializátor objektu, jak je znázorněno zde:
select new {name = cust.Name, phone = cust.Phone};
Další informace naleznete v tématu Anonymní typy (Příručka programování C#).
Rozšíření metody
Metodu rozšíření je statické metody, které mohou být přidruženy k typu, takže může být volána, jako by šlo o metodu instance na typu.Tato funkce umožňuje, ve skutečnosti "přidat" nové metody existující typy bez skutečně jejich úprav.Jsou operátory dotazu standardní sadu rozšíření metody, které poskytují LINQ dotazu pro každý typ, který implementuje funkci IEnumerable<T>.
Další informace naleznete v tématu Rozšíření metody (Příručka programování C#).
Lambda výrazy
Lambda výraz je vložené funkce, který používá = > operátor oddělit vstupní parametry funkce subjektu a může být převedena v době kompilace delegáta nebo ve stromu výraz.V LINQ programování, se setkáte lambda výrazů při volání metody přímé operátory standardního dotazu.
Více informací naleznete:
Automatické implementované vlastnosti
Automaticky implementovány vlastnosti proveďte deklarace vlastnosti stručnější.Když je vlastnost deklarovat, jak je znázorněno v následujícím příkladu, kompilátor vytvoří zálohování anonymní, soukromé pole, které není přístupné prostřednictvím vlastnosti getter a setter.
public string Name {get; set;}
Další informace naleznete v tématu Vlastnosti automatické implementována (Příručka programování C#).
Viz také
Koncepty
Že podpora LINQ funkcí jazyka Visual Basic