Lista list

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:)

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.

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.

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

0


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


A moja taka ;).

(to predykaty do wyszukiwania były)
0

Można jeszcze ciut prościej ;)

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

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