Wie FirstOrDefault Linq Abfrage in F # schreiben? Kann ich LINQ zu SQL in F # vollständig verwenden?FirstOrDefault In F #
Antwort
Beachten Sie, dass ein idiomatischer Ansatz innerhalb F # würde Wahrscheinlich sollte man etwas in der Art von Seq.tryFind
verwenden, anstatt die LINQ-Operatoren zu verwenden, obwohl es kein Ersatz ist, da es zurückkehrt ein Optionswert
In Bezug auf LINQ-to-SQL finden Sie
FirstOrDefault
In Bezug auf, es ist nur eine Erweiterung method im System.Linq
Namespace:
let l = [1;2;3]
open System.Linq
let r = l.FirstOrDefault()
Alternativ können Sie Ihre eigene FirstOrDefault leicht definieren:
let firstordefault list =
match list with
| head :: tail -> head
| [] -> 0 // some default value
Beispiel:
let exampleList = [ 1; 2; 3 ]
mit F # interaktiven,
firstordefault exampleList;;
val it : int = 1
Da das Seq
Modul bereits eine head
Funktion vom Typ seq<'a> -> 'a
,
module Seq =
let tryHead (ls:seq<'a>) : option<'a> = ls |> Seq.tryPick Some
Verwendung als: Ich würde seq<'a> -> option<'a>
eine Funktion tryHead
mit Signatur definieren
[1; 2; 3] |> Seq.tryHead
Seitdem wurde '' tryHead' '(https://github.com/Microsoft/visualfsharp/commit/b10392dc16593bf9286583e2a87217d18fa18b8a) in F # 4.0 hinzugefügt. –
- 1. FirstOrDefault() von einem LINQ gegen FirstOrDefault() mit einem Lambda?
- 2. Und Unterschied zwischen FirstOrDefault (func) und Where (func) .FirstOrDefault()?
- 3. FirstOrDefault wirft NotSupportedException
- 4. ConcurrentBag FirstOrDefault NullCheck wirft
- 5. LINQ - FirstOrDefault() dann Select()
- 6. FirstOrDefault() kann nicht mit? Operator
- 7. Was ist FirstOrDefault für DateTime in Linq?
- 8. FirstOrDefault gibt keine passende Antwort
- 9. F # Endlosschleifen in F #
- 10. Wie kann ich FirstOrDefault() verwenden?
- 11. FirstOrDefault wirft Ausnahme statt Null
- 12. FirstOrDefault Verhalten mit Int und Int?
- 13. Entity System.NotSupportedException, wenn sie mit FirstOrDefault Abfrage
- 14. mehrere Bedingungen an LINQ übergeben FirstOrDefault Methode
- 15. FirstOrDefault() || Wählen Sie() was ist schneller?
- 16. FirstOrDefault() bricht mit Linq zu NHibernate
- 17. String Vergleich Ausnahme innerhalb Entity Framework FirstOrDefault
- 18. Wie F [A \/B] in (F [A], F [B])
- 19. NHibernate 3.0: Nein FirstOrDefault() mit QueryOver?
- 20. FirstOrDefault() Typ Fehler bei der Rückkehr?
- 21. LINQ zu Entities GroupBy, OrderByDescending, FirstOrDefault, wenn
- 22. FirstOrDefault Nullreferenceexception zurück, wenn keine Übereinstimmung
- 23. Warum gibt es in Petapoco keine LastOrDefault-Methode wie FirstOrDefault?
- 24. F # und ADO.NET - idiomatische F #
- 25. Was ist die einfachste Art, Arrays abwechselnd zu sortieren (zB: T, T, F, F, F, T, F, T, F, F, F bis T, F, T, F, T, F, T, F, T, T, T)?
- 26. Tausendertrennzeichen in .Net/F #
- 27. SortiertNach ThenBy in F #
- 28. Imprädikativer Polymorphismus in F #
- 29. rekursive lambdas in F #
- 30. Allgemein Module in F #
ich auch 'Seq.tryFind' mit würde empfehlen - in F #, Sie in der Regel versuchen,' null' aviod mit Werte (weil sie gefährlich sind). Die Handhabung von Optionswerten ist einfacher, da Sie auch 'Option.map' und andere Funktionen für die Arbeit mit ihnen verwenden können (obwohl dies wahrscheinlich nicht in F # LINQ to SQL funktioniert) –
Yep,' Seq.tryFind (fun _ -> true) 'funktioniert super. –