Fenêtre immédiate Visual Studio: comment voir plus que les 100 premiers éléments


88

J'essaie de voir les propriétés d'un objet avec plus de 300 propriétés dans la fenêtre d'exécution de Visual Studio 2005. Seuls les 100 premiers éléments sont affichés, suivis de cette légende:

 < More... (The first 100 of 306 items were displayed.) >

J'essaie de voir le reste des éléments, mais je ne peux pas le comprendre.

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

Réponses:


38

Je sais que c'est trop tard. Cependant, si vous ajoutez votre objet à la fenêtre de surveillance. Développez les propriétés, où toutes sont affichées. Puis Ctrl-A et Copier. Vous pouvez ensuite coller Excel pour obtenir une liste organisée des propriétés et de leurs valeurs.


Je me sabote depuis 5 ans en ne faisant pas ça.
secretwep

53

Je sais que c'était il y a presque des années, mais je me suis heurté à cela aujourd'hui. 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 100 premiers en utilisant:

yourList.Skip(100).ToArray()

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

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


Merci d'avoir ajouté au sujet. Comme vous l'avez découvert, les «vieilles» questions ont parfois des réponses aux problèmes d'aujourd'hui!
DOK

Vous ne savez pas ce que vous entendez par "yourList" ici? Voulez-vous dire l'objet que j'essaie de voir? Si tel est le cas, ne fonctionne pas pour moi dans Visual Studio Pro 2013
Kunal

yourList serait l'objet (collection) que vous essayez d'afficher et serait généralement de type IList <T> ou IEnumerable <T>. J'espère que ça t'as aidé.
Ian Routledge

2
Je suppose que cela fonctionne si vous souhaitez afficher les éléments restants dans une collection, mais cette réponse est inutile pour Propriétés, comme mentionné dans les questions d'origine. Je ne sais pas pourquoi c'est la réponse choisie. La réponse de Gene Whitaker ci-dessous est beaucoup plus utile à l'OMI.
Simon ML

1
Bon point, vous avez raison, cette réponse est en fait fausse! Ont ajouté un commentaire de mise à jour - n'hésitez pas à modifier etc
Ian Routledge

16

La fenêtre immédiate a été conçue pour être un outil de visualisation rapide. Si vous souhaitez voir plus de détails, vous devrez les afficher dans la fenêtre de surveillance ou dans la fenêtre de surveillance rapide.

Une autre option consiste à écrire un complément Visual Studio qui fonctionne de la même manière que la fenêtre d'exécution, mais qui a plus d'options.


Merci. J'espérais avoir oublié quelque chose de simple, quelque chose qui n'implique pas tellement de cliquer, quelque chose qui faciliterait le défilement de centaines d'éléments. Je pense que vous avez identifié les meilleures alternatives.
DOK

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

@Gabriel Était-il vraiment conçu pour être un outil de visualisation rapide? Cela semble être bien plus que cela, bien que cela ait été et soit utile pour cette capacité. Il me semble unique et utile pour l'évaluation, à la fois prémonitoire et spéculative. Je crois que c'est plus qu'une machine "What Is" avec laquelle visualiser, mais une machine "What If" avec laquelle explorer.
G DeMasters

4

Je crée toujours une méthode d'extension pour exporter des objets au format xml lors d'un débogage comme celui-ci. C'est très utile pour dépanner les données d'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 une preuve complète à 100%, mais la plupart du temps, c'est parfait. Il créera un fichier xml dans le répertoire de l'application avec le nom des objets comme nom de fichier. Dans la fenêtre immédiate, vous pouvez simplement taper le nom de l'objet puis .SerializeToXML ().

donc: myList.SerializeToXML ()

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.