Ist es möglich, IQueryable<MyObject> = query.Take(1)
oder etwas Ähnliches in LINQ-Abfragesyntax zu schreiben. Ich verwende C# 5 und EF 5.Wie kann ich Take (1) in die Abfragesyntax schreiben
16
A
Antwort
17
Es zu Take
kein Äquivalent für LINQ in C# in der Abfrage-Ausdruck-Syntax ist. Die einzigen Methoden, die Entsprechungen für Abfrageausdrücke haben, sind
Dies ist aus §7.16.2 der Spezifikation.
+3
Ich wusste nicht, dass es eine "Enumerable.GroupJoin'! –
8
Nein. Sie müssen die Punktsyntax für diese Operation verwenden. Das Gleiche gilt für ToList
, Count
, etc ...
var query =
(from item in list
where predicate(item)
select func(item))
.Take(10);
Nur mit VB.NET. –
Leider nein, C# hat nicht so viele in-Sprache Linq Schlüsselwörter wie VB, aber Sie können es tun, ohne dass es zu chaotisch aussieht, indem Sie '.Skip (n) .Take (m)' am Ende hinzufügen. – Dai
@TimSchmelter oh cool. Aus Neugier, wie ist die Syntax in VB.NET? –