2013-07-26 15 views
16

Czy można napisać IQueryable<MyObject> = query.Take(1) lub coś podobnego w składni zapytania LINQ. Używam C# 5 i EF 5.Jak mogę napisać Take (1) w składni zapytania

+0

Tylko z VB.NET. –

+1

Niestety nie, C# nie ma tylu słów w języku Linq co VB, ale możesz to zrobić bez zbytniego bałaganu, dodając na końcu '.Skip (n) .Take (m)'. – Dai

+0

@TimSchmelter och fajne. Z ciekawości, jaka jest składnia w VB.NET? –

Odpowiedz

17

Nie ma odpowiednik Take w składni wyrażenie kwerendy dla LINQ w C#. Jedynymi metodami, które mają ekwiwalenty wyrażenia zapytań, są: To jest z § 7.16.2 specyfikacji.

+3

Nie wiedziałem, że istnieje "Enumerable.GroupJoin"! –

8

Nie. Musisz użyć składni kropkowej dla tej operacji. To samo dotyczy ToList, Count, itp ...

var query = 
    (from item in list 
    where predicate(item) 
    select func(item)) 
    .Take(10); 
Powiązane problemy