mit, dass mein Code ist ...bestellt Liste <object> lexikografisch Brute-Force-
string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis nisl vitae dolor tempus iaculis at id augue. Nullam metus mauris, viverra vitae tristique sed, pulvinar ac nulla."
List<object> listCarac = new List<object>();
object aux = 0;
text.Replace(" ", "");
for (int i = 0; i < text.Count(); i++)
{
listCarac.Add(text.Substring(i,1));
}
for (int x = 0; x < listCarac.Count(); x++)
{
for (int y = x + 1; y < listCarac.Count(); y++)
{
if (listCarac[x] > listCarac[y]) // My problem is here
{
aux = listCarac[x];
listCarac[x] = listCarac[y];
listCarac[y] = aux;
}
}
}
Mein Problem ist, wie lexikographisch zu vergleichen, ich denke, wenn das ist alphabetisch zu vergleichen. Danke.
Nun lassen Sie uns beginnen mit, was als „lexicographic“ Bestellung, wenn Ihre Liste tatsächlich enthalten ist (sagen wir) ein 'FileStream' und ein' Button' ... (Sie könnten 'mit' Liste beginnen soll. Beachten Sie auch, dass der Methodenaufruf 'text.Replace' nichts nützliches macht, da Sie den Rückgabewert ignorieren ...) –
Sie müssen das Objekt als IComparable definieren oder zumindest IComparable überprüfen und an IComparable übergeben. Ziemlich viele C# Basistypen haben das, und es wird von fast allen Sortierern verwendet. – Nyerguds
Dies sollte nicht einmal kompiliert werden, da es keinen '>' Operator für 'object' gibt. Es sieht so aus, als ob Sie die Zeichen in einer Zeichenfolge sortieren möchten. Die einfachste Lösung wäre, in diesem Fall 'text.OrderBy' zu verwenden. – Lee