2016-05-01 1 views
0

Je semble avoir l'arbre affiché dans l'ordre, mais je veux afficher le nom du pays dans la zone de texte au lieu de ce qu'il me donne actuellement Voici la code que j'ai actuellement concernant ce problème. Un FYI l'arbre remplit à partir d'un fichier lu dedans.InOrder tri d'une classe dans un AVLTtree par nom à une zone de texte

Je veux dans la zone de texte Argentine, Australie, Brésil, etc. mais courant "FormWork.Country, FormWork.Country, etc.". En les regardant dans les salons automobiles, ils sont dans le bon ordre, mais ne retournent pas le nom uniquement.

C'est dans les Form1.cs

public partial class Form1 : Form 
{ 
AVLTree<Country> countryTree = new AVLTree<Country>(); 
string buffer = null; 

public form1() 
{ 
LoadFile(); 
InitializeComponent(); 
orderTree(); 
} 

public void orderTree() 
{ 
countryTree.InOrder(ref buffer); 
txtOrder.Text = buffer; 
} 
} 

This is where .InOrder is

Mes questions semble être que je ne peux pas récupérer spécifiquement "tree.Data.countryName" de la classe Country.cs

Répondre

0

place de l'appel

buffer += tree.Data.toString() + ","; 

dans le bu ajoutez ffer ligne de votre commande en traversal, appelez quelque chose le long des lignes de

buffer += tree.Data.CountryName + ", "; 

pour accéder à la chaîne de la propriété que vous essayez d'imprimer plutôt que d'une représentation de l'objet Pays qui sera « FormWork.Country ". Deuxièmement, vous devriez mettre tout votre code dans la question plutôt que de lier à 2 endroits différents.

+0

De plus, vous pouvez définir la fonction toString de la classe de pays pour retourner le CountryName et vous ne devez changer votre mise en œuvre envue – Hamburglar

+0

J'utilise une interface de bureau virtuel pour accéder VS, et ne peut donc pas copier/coller le code sans le réécrire sur , alors j'ai décidé de le prendre en photo. J'ai cependant essayé votre méthode et cela n'a pas fonctionné, mais j'ai reçu de l'aide ailleurs ce qui a résolu mon problème en utilisant un override ToString. – Owenzzz