9
votes

Faire fonctionner une fois

La question est donc la suivante: j'ai un pour chaque boucle que j'utilise actuellement pour récupérer des données à partir d'une requête d'un fichier XML qui est ensuite placé dans une chaîne; Comme:

foreach (var value in dateQuery)
                date = value.Element("HistoryCreation").Value;


2 commentaires

Je ne peux pas croire que cela a fallu si longtemps (3 minutes) pour répondre à cette question.


Il faut une minute pour des questions à apparaître parfois. Surtout sur la première page (pas lorsque vous cliquez sur "Questions")


11 Réponses :


8
votes
date = dateQuery.Single().Element("HistoryCreation").Value;

0 commentaires

20
votes

Vous pouvez utiliser:

dateQuery.First().Element("HistoryCreation").Value


0 commentaires

7
votes

Si vous utilisez .NET 3.5 ou plus récent, vous pouvez utiliser la méthode d'extension énumérable.single : xxx

alors si votre hypothèse ne sera qu'un la valeur à dateQuery 'est fausse, il lancera une exception.


1 commentaires

Tster: Je l'ai supprimé - il est clair qu'il utilise 3.5 de l'utilisation de var.



2
votes

Vous ne pouvez pas simplement accéder au premier index de dateQuery ? xxx


2 commentaires

@tster - accepté, mais ce n'est pas impliqué dans la question.


Vous auriez besoin de vérifier que DateQuery a au moins un élément, sinon vous obtiendrez une exception d'index hors de portée.



2
votes

Essayez Enumérable.Single ou Enumérable.Singleordfault :

 date = dateQuery.Single().Element("HistoryCreation").Value;


0 commentaires

2
votes
dateQuery.First().Element("HistoryCreation").Value
if you are able to use LINQ

2 commentaires

Bon sang, vous devez vraiment être rapide sur le tirage ici!


Je suis d'accord, ces réponses étaient toutes correctes; et ils sont venus si vite. : /



2
votes

Vous pouvez essayer xxx

que vous pourriez utiliser .First () ou .Single (), mais s'il n'y a rien dans DataQuery une exception sera lancée. >


0 commentaires

5
votes

La réponse de Mark est de loin le meilleur, mais je mets le mien pour illustrer la boucle de foresach. XXX


0 commentaires

1
votes

Cela devrait faire l'astuce: xxx


0 commentaires

5
votes

emmanual, si vous savez que vous n'avez besoin que de faire quelque chose une fois, vous ne devriez pas utiliser une boucle.


0 commentaires

4
votes

résumer:

  • Utilisez d'abord () si vous voulez le premier élément et sachez qu'il existe au moins un (ou plus) articles de la séquence.
  • Utilisez FirstArdefault () si la séquence peut avoir un nombre quelconque d'éléments
  • Utilisez un seul () si la séquence peut avoir exactement un élément
  • Utilisez UNEPADEFAULT () si la séquence a toujours zéro ou un élément

    Notez qu'il existe également des versions de ceux-ci qui prennent des prédicats, de sorte que vous puissiez abréger xxx

    à xxx


0 commentaires