Avatar
Martin Bruna
Člen
Avatar
Martin Bruna:

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ý
Redaktor
Avatar
Odpovídá na Martin Bruna
Jan Vargovský:

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
Redaktor
Avatar
Odpovídá na Martin Bruna
hanpari:

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í
+1 bodů
Ř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:

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:

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
Jan Vargovský
Redaktor
Avatar
Odpovídá na Martin Bruna
Jan Vargovský:

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.