Dieses Snippet zeigt versch. möglichkeiten eine Zahl um eine gewisse Anzahl von Nullen davor (praktisch beim Sortieren) zu ergänzen. Die Anzahl wird anhand einer Liste mit weiteren Zahlen berechnet:
nNullen = nZeichen(GrößteZahlAusListe) - nZeichen(Zahl selber)
// Variante 1: von Koopakiller
// Hier wird einfach die gesamte Zeichenzahl übergeben
// dann kann sie einmal ermittelt werden und immer wieder an die Methode übergeben werden, was zahlreiche aufeinanderfolgende (und IDENTISCHE) LINQ-Aufrufe vermeidet.
public static string ToSortableNumberString(this int number, int charCount)
{
return number.ToString().PadLeft(charCount, '0')
}
// Variante 2: von schreini
public static string ToSortableNumberString (this int number, int charCount)
{
return number.ToString("D" + charCount.ToString());
}
// Variante 3: WIE MAN'S NICHT MACHEN SOLLTE:
public static string ToSortableNumberString(this int number, List<int> otherNumbers)
{
string zeros = "";
int countZeros = otherNumbers.Max().ToString().Length;
countZeros = countZeros - number.ToString().Length;
for (int i = 0; i < countZeros; i++)
zeros += "0";
return zeros + number.ToString();
}
4 Kommentare zum Snippet