Lista list

Odpowiedz Nowy wątek
2008-11-03 17:03
malak
0

Witam

Mam pytanie czy jest możliwość zrobienie w C# Listy list. Chodzi mi dokładnie o zrobienie czegoś takiego:

List<krawedz> lista_krawedzi = new List<krawedz>();
a później listy tej listy:
// List<lista_krawedzi> lista_list = new List<lista_krawedzi>(); Niestety to nie działa, ma ktoś jakiś pomysl jak to można byłoby rozwiązać??

Z góry dziękuję i pozdrawiam:)

Pozostało 580 znaków

2008-11-03 17:21
malak
0

I jeszcze jedno pytanie, jak posortować liste krawędzi za pomocą funkcji Sort.
Krawędź zawiera 3 atrybuty: Point początek, Point koniec oraz int waga.

Chciałbym posortować liste aby elementy listy były posortowane wedlug wag niemalejąco.

Pozostało 580 znaków

2008-11-03 18:15
Rev
0

List<List<krawedz>> lista_krawedzi = new List<List<krawedz>>();

A na sortowanie odpowiem jak będę miał dostęp do Visual Studio, bo tych predykatów (tak to się tłumaczy ;)?) nie pamiętam dokładnie.


Pozostało 580 znaków

2008-11-03 20:06
0
malak napisał(a)

I jeszcze jedno pytanie, jak posortować liste krawędzi za pomocą funkcji Sort.
Krawędź zawiera 3 atrybuty: Point początek, Point koniec oraz int waga.

Chciałbym posortować liste aby elementy listy były posortowane wedlug wag niemalejąco.

Moja propozycja jest taka:
1) Robisz sobie klasę porównującą dziedziczącą po IComparer<t>;
2) Sortujesz listę wołając na niej metodę Sort() z obiektem klasy porównującej jako parametrem.

W kodzie to jakoś mniej więcej tak:


internal class WagaKrawedziComparer : IComparer<krawedz> //bardzo brzydka nazwa klasy
{
public int Compare(Krawedz x, Krawedz y)
{
return y.Waga - x.Waga; //odwrotnie, bo ma być rosnąco
}
}
//...jakiś kod
List<krawedz> lk = new List<krawedz>();
//...jakiś kod - pewno uzupełnienie listy danymi
lk.Sort(new WagaKrawedziComparer()); //sortowanie


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2008-11-03 22:07
Rev
0


lista.Sort(delegate(Krawedz a, Krawedz b) { return a.waga - b.waga; });


A moja taka ;).

(to predykaty do wyszukiwania były)

Pozostało 580 znaków

2008-11-05 11:48
0

Można jeszcze ciut prościej ;)

lista.Sort((a, b) => a.waga - b.waga);

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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