C# Sortowanie obiektów w ArrayList

0

Witam

Do Kolekcji, ArrayList dodałem kilka obiektów stworzonych w następujący sposób:

 for (int i = 0; i <= Convert.ToInt32(textBox1.Text); i++)
            {

                c = new Class1(i);
                c.Obliczenia1();
                Populacja.Add(c);
                progressBar1.Value = i;
            }

Każdy takich osobnik charakteryzuje się wartością optimum, teraz mam pytanie czy da się dodać wszystkie elementy do ListBoxa i posortować je od najmniejszego do najwiekszego ze wzgledu na wartość optimum?

0

Populacja to ArrayList? Tutaj masz wyjaśnienie: http://msdn.microsoft.com/en-us/library/8k6e334t.aspx

0

Tak populacja to ArrayList. Skąd on am wiedzieć ze chodzi mi o sortowanie po optimum?

0

musisz stworzyć własny Comparer implementujący IComparer i podać jego instancje jako argument wywołania .Sort().

0

Sugeruję używać List<T> zamiast ArrayList.

0

"musisz stworzyć własny Comparer implementujący IComparer i podać jego instancje jako argument wywołania .Sort()."

wg mnie to było dobre X lat temu, jak jeszcze nie było linq :)

Jak zostało wspomniane użyj Listy, czyli np.

            List<Class1> Populacja = new List<Class1>();

            for (int i = 0; i < 100; i++)
            {
                var c = new Class1(i);
                Populacja.Add(c);
            }

            List<Class1> result = Populacja.OrderByDescending(x => x.I).ToList();

OrderByDescending - sortuje malejąco wg pola I które znajduje się w moim przykładzie w Class1, zamiennie możesz użyć OrderBy, który posortuje rosnąco

0

Dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1