You can try using LINQ/Lambda Expressions like this:
string [] player = { "Zidane","Gomez", "Messi", "----", "Ballack", " " };
var sortedList = player.OrderBy(s => s).
Where(s => !(s.Contains("----") || s.Contains(" ")));
Will result in
Ballack
Gomez
Messi
Zidane
BTW It's Mario Gomez not Gomes ;-)
If the strings ar Items in a ListBox, then try
listBox.Sorted = true;
listBox.Items.Remove("----");
listBox.Items.Remove(" ");
OK, last try:
I assume you have a WinForm app. I dont' know, why my listBox.Sorted = true; solution did not work. I wrote a little test app and it does well.
string [] lst = listBox1.Items.Cast<string>().ToArray();
var sortedList = lst.OrderBy(s => s).
Where(s => !(s.Contains("----") || s.Contains(" ")));
listBox2.DataSource = sortedList.ToList();