najlatwiej bedzie uzyc wyrazen regularnych, gdzie wzorzec bedzie przyjmowal tylko wyrazy[a-z][A-Z]
innym sposobem jest uzyc linq i tylko z tym bedzie troszke wiecej zachodu bo bedzie trzeba dzielic stringi, ale mozna to stosunkowo krotko zapisac... dam ci tylko przyklad (bo nie bede za Ciebie robil) ktory powinien Cie jakos tam naprowadzic ;]:
string twojplik = @"~/twojplik.txt";
//tworzymy sobie liste ktora bedzie np pobierala nazwy z pliku:
List<string> lista = new List<string>();
StreamReader sr = new StreamReader(twojplik);
string line;
while ((line = sr.ReadLine()) != null)
{
lista.Add(line);
}
var query = from posot in lista
select posot;
//sortujemy liste, w tym przypadku bierzemy to co znajduje sie za '.' zostanie posortowane alfabetycznie
var posortowane = query.OrderBy(c =>c.Substring(c.IndexOf('.')));
sr.Close();
using (StreamWriter sw = new StreamWriter(twojplik))
{
//no i zapisujemy posortowane wyniki do tego samego pliku
foreach (string g in posortowane)
{
sw.WriteLine(g);
}
Console.WriteLine("segregowanie ukonczono");
}