comment obtenir un deuxième enregistrement dans linq à sql
J'ai une table de taux de change. J'ai besoin d'obtenir taux actuel et le taux précédent, puis de comparer les résultats.
Je peux obtenir le premier enregistrement à l'aide de FirstOrDefault
.
Quand je suis en utilisant ElementAtOrDefault
cette erreur indique "La requête de l'opérateur ElementAtOrDefault " n'est pas pris en charge". Comment puis-je obtenir le deuxième enregistrement?
source d'informationauteur ebattulga
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer ceci:
Prendre() renvoie la valeur null si l'élément n'est pas là (donc équivalent à FirstOrDefault()).
Si vous préférez une exception a été levée (cos le deuxième élément n'est pas là) comme le (Premier) puis utiliser:
Il y a un détail qui n'est pas mentionné ici:
FirstOrDefault
retourne unElement
Skip(1).Take(1)
retourne un ensemble de 1 élément; c'est à dire le type retourné parSkip(1).Take(1)
estIEnumerable
tandis queFirstOrDefault
ne l'est pas.Si vous utilisez
vous obtiendrez la première et la deuxième.
MODIFIER - Si vous avez besoin à la fois de la première et de la seconde, puis la ci-dessus sera plus efficace que runing votre requête deux fois:
Essayez ce simple de mise en œuvre de ce qui peut être utile
Sélectionnez haut 2, puis sélectionnez le deuxième élément.
va chercher le deuxième enregistrement dans la collection.
Utilisation .Sauter(1) méthode