Gibt es eine Möglichkeit, IComparer mit ArrayList.Sort() zu verwenden, um eine Gruppe von Strings als Ints zu sortieren?Sortieren von String-Arrays als Int
1
A
Antwort
6
Sicher. Erstellen Sie einfach den entsprechenden Vergleich, der die Konvertierung durchführt.
public class StringAsIntComparer : IComparer {
public int Compare(object l, object r) {
int left = Int32.Parse((string)l);
int right = Int32.Parse((string)r);
return left.CompareTo(right);
}
+0
Das war was ich antworten wollte! –
7
Wenn sie alle Zeichenfolgen sind, warum verwenden Sie eine ArrayList? Wenn Sie auf .Net 2.0 oder höher sind, ist List<string>
eine viel bessere Wahl.
Wenn Sie auf .Net 3.5 oder höher:
var result = MyList.OrderBy(o => int.Parse(o.ToString())).ToList();
1
eine leichte Variation basierend auf Joels Lösung
string[] strNums = {"111","32","33","545","1","" ,"23",null};
var nums = strNums.Where(s =>
{
int result;
return !string.IsNullOrEmpty(s) && int.TryParse(s,out result);
}
)
.Select(s => int.Parse(s))
.OrderBy(n => n);
foreach(int num in nums)
{
Console.WriteLine(num);
}
Verwandte Themen
- 1. C# enums als int
- 2. Return int als boolean
- 3. Vergleichen Float-Array als int-Array
- 4. Sortieren von Boost-Tupel
- 5. Anorm get Int als Ergebnis
- 6. Int als lange ungerade Wert
- 7. Array von Zeigern sortieren
- 8. Liste der ints nach der ersten Ziffer jedes int sortieren
- 9. Wie kann ich List [Int] Objekte in Scala sortieren?
- 10. Wie deserialize [[int, int, int, int, string, string], [...]] von JSON
- 11. SQL spätestes Datum als Auftrag durch int Wert
- 12. Sortieren von Zeichenfolgen mit qsort
- 13. int (bla) andere Antwort aus (bla) als int
- 14. Eine Datumsliste als String in Java sortieren
- 15. mysql sortieren Zeichenfolge als Datum nicht als String
- 16. Fibonacci C++ - ungültige Konvertierung von 'int' zu 'int *' und Initialisierung des Arguments 2/3 von 'int fibo (int, int *, int *)'
- 17. Ein weiteres 'NSUInteger *' (auch bekannt als 'unsigned int *') vs 'NSUInteger' (auch bekannt als 'unsigned int')
- 18. Fehler: Aufruf von überladen 'bind (int (Klasse :: *) (int, int), Klasse *, int, int) ist mehrdeutig
- 19. Sortieren einer Liste von Zeichenfolgen als Ganzzahlen in LINQ C#
- 20. Problem, das ein Int als ein NSString
- 21. Speichern Android Farbe als Int Notation
- 22. Sortieren von Befehlszeilenargumenten in C
- 23. Haskell: Wie in Kommandozeilenargumente als int gelesen?
- 24. Java - Spezifikation Int als Eingabe mit Scanner
- 25. Warum kann Java 0xff000000 als int speichern?
- 26. Warum Array als "int * & name" übergeben?
- 27. C# mit Enumerable Bereich als int
- 28. Übergabe von int-Array als Parameter im Web-Benutzer-Steuerelement
- 29. Javascript - Parsen von JSON einschließlich int als Objekt
- 30. Warum wird VkBool32 von Vulkan als unsigned int implementiert?
Haben Sie Strings bedeuten wie "1", "55"? – weiqure