10. marts 2005 - 21:57Der er
4 kommentarer og 1 løsning
Sortering af strings i ArrayList
Hej Jeg kan simpelthen ikke få arraylists sort til at virke...'
Jeg har en klasse med et par forskellige typer i (string int og Image) som jeg sender i en arraylist, og dem vil jeg nu gerne have sorteret efter String, er der nogen af jer der kan hjælpe mig?
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Det her eksempel viser sortering og sortering og ....
using System; using System.Collections;
public class Foobar : IComparable { private int a; private string b; public Foobar() : this(0, "") { } public Foobar(int a, string b) { this.a = a; this.b = b; } public int A { get { return a; } set { a = value; } } public string B { get { return b; } set { b = value; } } public int CompareTo(object o) { return (a - ((Foobar)o).A); } public override string ToString() { return ("(" + a + "," + b + ")"); } }
public class FoobarAComparer : IComparer { int IComparer.Compare(Object o1, Object o2) { return (((Foobar)o1).A - ((Foobar)o2).A); } }
public class FoobarRevAComparer : IComparer { int IComparer.Compare(Object o1, Object o2) { return -(((Foobar)o1).A - ((Foobar)o2).A); } }
public class FoobarBComparer : IComparer { int IComparer.Compare(Object o1, Object o2) { return (((Foobar)o1).B.CompareTo(((Foobar)o2).B)); } }
public class FoobarRevBComparer : IComparer { int IComparer.Compare(Object o1, Object o2) { return -(((Foobar)o1).B.CompareTo(((Foobar)o2).B)); } }
class ManySort { private static void print(string descr, ArrayList list) { Console.Write(descr + ": ["); foreach(object o in list) { Console.Write(o); } Console.WriteLine("]"); } public static void Main(string[] args) { ArrayList list = new ArrayList(); list.Add(new Foobar(5, "AAAAA")); list.Add(new Foobar(4, "BBBB")); list.Add(new Foobar(3, "CCC")); list.Add(new Foobar(2, "DD")); list.Add(new Foobar(1, "E")); print("Original", list); list.Sort(); print("After natural sort (= sort on A)", list); list.Sort(new FoobarRevAComparer()); print("After reverse sort on A", list); list.Sort(new FoobarAComparer()); print("After sort on A", list); list.Sort(new FoobarBComparer()); print("After sort on B", list); list.Sort(new FoobarRevBComparer()); print("After reverse sort on B",list); } }
Det er der ikke, jeg har bare aldrig brugt Icomparer før, men tak for tilbuddet
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.