Diskuze: Kolekce

C# .NET .NET (C# a Visual Basic) Kolekce American English version English version

Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Zdravím,
chtěl bych pomoct s kolekcemi. Chci vytvořit kolekci, která jako první hodnotu bude obsahovat ENUM, ve kterém budou hodnoty jako čtverec, kruh, obdélník atp.. To bych věděl, ale chtěl bych, aby jako druhou hodnotu obsahovala Point, ale aby mohl mít jakýkoliv počet Pointů (tzn. že čtverec bude mít 4, které se následně pospojují, kruh nebude mít žádný, jenom výšku a šířku atp.)
Chtěl bych vědět, jakou kolekci je na toto nejvhodnější použít a jak se následně přidávají hodnoty, případně mažou.
Díky za případné rady.

 
Odpovědět 20.8.2014 14:33
Avatar
Luboš Běhounek (Satik):

myslis něco jako

Dictionary<MujEnum, List<Point>>

?

Nahoru Odpovědět  +1 20.8.2014 14:41
:)
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Jo, přesně tohle jsem měl na mysli. Děkuji.
Jen bych chtěl vysvětlit, jak se zapisuje do toho ten List<Point> a jak se zjišťuje.

 
Nahoru Odpovědět 20.8.2014 14:49
Avatar
Luboš Běhounek (Satik):

vytvoříš si nový list pointů a ten pak do toho slovníku jen přidáš, třeba nějak takhle:

var tvary = new Dictionary<NazevTvaru, List<Point>>();
var ctverec = new List<Point>();
ctverec.Add(new Point(1,1));
ctverec.Add(new Point(2,1));
ctverec.Add(new Point(2,2));
ctverec.Add(new Point(1,2));
tvary.Add(NazevTvaru.Ctverec, ctverec);
enum NazevTvaru
{
  Ctverec,
  Trojuhelnik,
  Usecka,
}
Nahoru Odpovědět 20.8.2014 15:52
:)
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Hmm, teď jsem zjistil, že Dictionary použít nemůžu, protože můžu mít jenom jeden od každýho obrazce (z Key => Enum). Co se dá ještě použít, krom Dictionary?

Editováno 20.8.2014 16:42
 
Nahoru Odpovědět 20.8.2014 16:39
Avatar
Odpovídá na Lukáš Křehula
Luboš Běhounek (Satik):

Pokud tam potřebuješ mít pro každý klíč (z toho enumu) více záznamů, tak bys potřeboval

Dictionary<NazevTvaru, List<List<Point>>>

nebo si na to napsat nějakou třídu

Nahoru Odpovědět 20.8.2014 17:04
:)
Avatar
sadlomaslox25:

To bude chtit spis vice OOP nez to nejak bastlit do kolekce. Chtelo by to nejspis base class Obrazec a jeho potomky tridy Ctverec, Trojuhelnik ... .

 
Nahoru Odpovědět  +1 20.8.2014 17:18
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

A jak by to OOP mohlo vypadat? Chtěl bych pak později těm obrazcům měnit i velikosti a pozici.

 
Nahoru Odpovědět 20.8.2014 21:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.