2016-11-30 2 views
1

Bonjour je veux obtenir toutes les valeurs après la dernière tranche carrée « ] » laisse ainsi dire les valeurs suivantes sont dans mon ListBoxComment obtenir une valeur spécifique dans ListBox C#

[Database]ColumnName 
[Firefox]Browser 
[Program]VisualStudio 
[SQL]SQLSERVER 

et je veux voir

ColumnName 
Browser 
VisualStudio 
SQLSERVER 

mon code

foreach (var s in ListBox1.Items) 
{ 
    if (s.Equals("]") == true) 
    { 
     var desc = s.Equals("]"); 
     ListBox2.items.add(desc) 
    } 
} 

Répondre

0

vous pouvez utiliser split et last

foreach (var s in ListBox1.Items) 
{ 
     var desc = s.ToString().Split("]").Last(); 
     ListBox2.Items.Add(desc); 
} 

cette façon, votre code ne sera pas aller erreur même s'il n'y a pas ']' dans votre chaîne

+0

Oui c'est ce que je vous remercie merci –

2

Vous pouvez utiliser SubString ainsi que l'indice du support de fermeture, pour obtenir ce qui vient après:

foreach (var s in ListBox1.Items) 
    { 
     s = s.ToString(); 
     var desc = s.SubString(s.LastIndexOf("]") + 1); 
     ListBox2.Items.Add(desc); 
    } 
+0

Non qui ne fonctionne pas, j'ai essayé que allready –

+0

Comment fonctionne exactement pas ça marche? – ThePerplexedOne

+0

Parce que vous utilisez Listbox1.items vous ne pouvez pas choisir Substring vous ne choisissez questring, gethascode, equals, gettype –

0

Vous pouvez utiliser SubString si foreach loop variable type de données est "chaîne". Si vous définissez une variable comme "var", vous devez convertir "var" en "string".

essayer ...

foreach (string item in listBox1.Items) 
{ 
    listBox2.Items.Add(item.Substring(item.LastIndexOf("]") + 1)); 
} 

Ou

foreach (var item in listBox1.Items) 
{ 
    listBox2.Items.Add(item.ToString().Substring(item.ToString().LastIndexOf("]") + 1)); 
}