Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Martin Bruna
Člen
Avatar
Martin Bruna:14.3.2015 23:06

ahoj,
mám takový dotaz, jak moc je LINQ rychlé, ve hře sem rozdělil objekty do vrstev a mám takovýto příkaz:

Layers.Single(s => s.Name == "Gui").Objekty.Add(objekt);

nebylo by lepsi dat vrstvy do normalniho pole a přistupovat přez indexy?

Layers[5].Objekty.Add(objekt);

btw. nezabijte me za czenglish :D

 
Odpovědět
14.3.2015 23:06
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Martin Bruna
Jan Vargovský:15.3.2015 1:39

Porovnáváš jablka s hruškama...

Ofc, že indexace v poli je rychlejší, než sekvenční hledání prvku v kolekci.

 
Nahoru Odpovědět
15.3.2015 1:39
Avatar
hanpari
Tvůrce
Avatar
Odpovídá na Martin Bruna
hanpari:15.3.2015 7:20

POkud těch vrstev nemáš tisíce, tak je to myslím jedno. I když pokud ti jde o to, abys mohl přistupovat k vrstvám přes nějaká jména, proč nevyužít Dictionary?
V tomto konkrétním případě mi to nedává moc smysl, cos napsal pomocí LINQ.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
15.3.2015 7:20
Avatar
Martin Bruna
Člen
Avatar
Odpovídá na Jan Vargovský
Martin Bruna:15.3.2015 10:53

Mě šlo spíše o to jestli má vůbec cenu vymenit čitelnost kódu za tak dobře nečitelné indexy (co za vrstvu si za dva roky představim pod číslem 2)

 
Nahoru Odpovědět
15.3.2015 10:53
Avatar
Martin Bruna
Člen
Avatar
Odpovídá na hanpari
Martin Bruna:15.3.2015 10:59

To vypadá na to co sem hledal :D Jak je to u Dictionary s rychlostí?

Layers["Gui"]

vs.

Layers[5]

raději bych využil první možnost ale bojím se o rychlost.

 
Nahoru Odpovědět
15.3.2015 10:59
Avatar
hanpari
Tvůrce
Avatar
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Martin Bruna
Jan Vargovský:15.3.2015 12:55

Jestli chceš přehledný kód, tak využij enumy. Vrstvy měj uložené normálně v poli, ale někde v nějakém LayerFinderu si nadefinuj co každá vrstva znamená a z venčí už se dotazuj jen skrz enum.

 
Nahoru Odpovědět
15.3.2015 12:55
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 7 zpráv z 7.