Arriver premier élément d'un IEnumerable élément
Je suis de retour d'un IEnumerable<object[]>
élément à partir d'une fonction qui utilise yield return
dans une boucle.
public static IEnumerable<object[]> GetData()
{
...
connection.Open();
using (OleDbDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
object[] array = new object[dr.FieldCount];
dr.GetValues(array);
yield return array;
}
}
connection.Close();
}
Quelle est la meilleure façon de récupérer le premier élément sans l'aide d'une boucle de préférence?
var result = Adapter.GetData();
OriginalL'auteur David Weng | 2011-04-29
Vous devez vous connecter pour publier un commentaire.
En bref:
C'est ce qu'un foreach dans une boucle pour parcourir tous les éléments.
Bonne façon:
}
Avec LINQ:
ou
Aussi:
yield return
, donc si j'appelle la fonction deux fois, il soulève une exception dire la connexion précédente n'était pas proche. Comment cela fonctionne très bien avecforeach
? Je devrais jeter quelque chose en quelque sorte?Pouvez-vous dire ce que vous avez utilisé pour obtenir le premier élément?
Cool man, je l'ai corrigé en passant
CloseConnection
comportement à laExecuteReader
fonction. Tout fonctionne très bien maintenant. Grâce tas.Weng - pourquoi l'appel de la fonction deux fois? taux de retour, pour le dire crûment, est comme une pause. Jusqu'à ce que tous les éléments sont "donné" votre connexion n'est pas fait.
Wenig - pourquoi à l'aide de(...)? Je pense que, l'agent recenseur n'est pas un IDisposable.
OriginalL'auteur manojlds
Si votre .Net 3.5 ou supérieur
OriginalL'auteur Toby
Ne pouvez-vous pas utiliser
result.First()
?attendez, n'est-ce pas IEnumerable ont un
First()
méthode? Ou ai-je complètement mal compris votre question (peut-être)?Ai-je raté une référence? 'Système.Les Collections.Génériques.IEnumerable<object[]>' ne contient pas une définition pour 'First' et aucune méthode d'extension 'Premier' acceptant un premier argument de type 'System.Les Collections.Génériques.IEnumerable<object[]>' a pu être trouvé (vous manque une directive using ou une référence d'assembly?)
jetez un oeil ici: msdn.microsoft.com/en-us/library/bb291976.aspx.
OriginalL'auteur alex
OriginalL'auteur Pankaj
OriginalL'auteur Krzysztof Radzimski