96 votes

Fenêtre immédiate de Visual Studio : comment voir plus de 100 éléments

Je suis en train de voir les propriétés d'un objet avec plus de 300 propriétés dans la fenêtre Immediate de Visual Studio 2005. Seuls les 100 premiers éléments sont affichés, suivis de cette légende :

 < Plus... (Les premiers 100 éléments sur 306 ont été affichés.) >

Je cherche à voir le reste des éléments, mais je n'arrive pas à trouver la solution.

Je me rends compte que je pourrais les voir dans une fenêtre Watch, mais ce n'est pas la même chose.

60voto

Gene Whitaker Points 476

Si vous ajoutez votre objet à la fenêtre d'observation, puis développez les propriétés de manière à ce qu'elles soient toutes affichées. Ensuite, appuyez sur Ctrl+A et copiez. Vous pouvez ensuite coller dans Excel pour obtenir une liste organisée des propriétés et de leurs valeurs.

54voto

Ian Routledge Points 2155

Parfois, il est utile de voir la liste dans la fenêtre immédiate plutôt que de regarder dans la fenêtre de surveillance. Vous pouvez facilement voir plus de résultats que les premiers 100 en utilisant :

votreListe.Skip(100).ToArray()

Ce qui ne prend vraiment pas beaucoup de temps à écrire et fonctionne bien - cela m'a été utile.

Mise à jour : Comme indiqué dans les commentaires ci-dessous, cette réponse est en fait incorrecte et applicable UNIQUEMENT aux collections et NON aux objets avec beaucoup de propriétés. Je la laisse ici car beaucoup de personnes semblent l'avoir trouvée utile.

0 votes

Merci d'avoir contribué au sujet. Comme vous l'avez découvert, parfois les questions "anciennes" ont des réponses aux problèmes d'aujourd'hui!

0 votes

Pas sûr de ce que vous voulez dire par "votreListe" ici ? Voulez-vous dire l'objet que j'essaie de voir ? Si c'est le cas, cela ne fonctionne pas pour moi dans Visual Studio Pro 2013.

0 votes

VotreList serait l'objet (collection) que vous essayez de visualiser et serait généralement de type IList ou IEnumerable. J'espère que cela aide.

16voto

Gabriel McAdams Points 22323

La fenêtre immédiate a été conçue pour être un outil de visualisation rapide. Si vous voulez voir plus de détails, vous devrez le consulter soit dans la fenêtre Watch ou dans la fenêtre Quick Watch.

Une autre option consiste à écrire un complément Visual Studio qui fonctionne de manière similaire à la fenêtre immédiate, mais qui offre plus d'options.

0 votes

Merci. J'espérais juste avoir négligé quelque chose de simple, quelque chose qui n'implique pas autant de clics, quelque chose qui rendrait facile de parcourir des centaines d'articles. Je pense que vous avez identifié les meilleures alternatives.

1 votes

@DOK: Il y a maintenant une meilleure réponse à cette question qui mérite peut-être d'être acceptée.

1 votes

@Gabriel Est-ce vraiment conçu pour être un outil de visualisation rapide? Il semble être bien plus que ça, même s'il a et est utile pour cette fonctionnalité. Il me semble unique et utile pour l'évaluation, à la fois préscient et spéculatif. Je crois que c'est plus qu'une machine à "Qu'est-ce que c'est" avec laquelle visualiser, mais une machine à "Et si" avec laquelle explorer.

6voto

John Points 88

Je crée toujours une méthode d'extension pour exporter des objets au format XML lors du débogage comme ceci. C'est très utile pour dépanner les données des objets. Voici ce que j'utilise :

public static void SerializeToXML(this object entity)
{
    System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(entity.GetType());

    System.IO.StreamWriter file = new System.IO.StreamWriter(string.Format(@"{0}\{1}.xml", Directory.GetCurrentDirectory(), entity.GetType().Name));
    writer.Serialize(file, entity);
    file.Close();
}

Ce n'est pas 100% fiable, mais la plupart du temps c'est parfait. Cela créera un fichier XML dans le répertoire de l'application avec le nom de l'objet comme nom de fichier. Dans la fenêtre immédiate, vous pouvez simplement taper le nom de l'objet suivi de .SerializeToXML().

donc : myList.SerializeToXML()

4voto

Dominik Sand Points 126

C'est une vieille question mais pour obtenir les propriétés et les valeurs d'un objet pendant l'exécution, une solution plus raisonnable avec la fenêtre Quickwatch est ici :

  1. Ouvrez Quickwatch pendant le mode Débogage

Fenêtre Quickwatch

  1. Tapez votre NomVariable et appuyez sur Entrée

Expression de modèle

  1. Appuyez sur CTRL + A et CTRL + C pour sélectionner et copier toutes les propriétés. Vous devez développer celles qui contiennent des valeurs et qui sont de types non primitifs.

  2. Collez dans votre éditeur préféré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X