2013-07-26 2 views
16

IQueryable<MyObject> = query.Take(1)または同等のものをLINQクエリ構文で記述できますか?私はC#5とEF 5を使用しています。クエリ構文でTake(1)を書くには

+0

VB.NETのみ。 –

+1

残念ながら、C#にはVBと同じ言語内のLinqキーワードはありませんが、末尾に '.Skip(n).Take(m) 'を追加することであまりにも面倒なことがなくても実行できます。 – Dai

+0

@TimSchmelter oh cool。好奇心のために、VB.NETの構文は何ですか? –

答えて

17

... ToListCountなどのために行きます。同等のクエリ式を持つ唯一のメソッドは、

Where, 
Select, 
SelectMany, 
Join, 
GroupJoin, 
OrderBy, 
OrderByDescending, 
ThenBy, 
ThenByDescending, 
GroupBy, 
Cast 

です。これは仕様の§7.16.2からのものです。

+3

'Enumerable.GroupJoin'があったのを知らなかった! –

8

いいえ。その操作にはドットシンタックスを使用する必要があります。同じことがC#でLINQのクエリ式の構文でTakeに相当するものはありません

var query = 
    (from item in list 
    where predicate(item) 
    select func(item)) 
    .Take(10); 
関連する問題