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
roks
Člen
Avatar
roks:21.4.2013 20:37

Zdravím, jeden programátor mi pomohol s jedným kódom, definoval ho typom var, ale vyhadzuje mi chybu pri nulovej hodnote.
kód vyzerá takto :

var selectedImage = Obrazky.Single(x => x.meno == strom.SelectedNode.Text);
if (selectedImage != null)
{
// kód funkcie
}

Obrazky - list s premennými meno a obrazok.
meno - premenná v liste Obrazky
strom - treeView

Typ var mi má vyhladať, či nejaká položka v strome(treeNode) nemá rovnaký text ako meno v Liste Obrazky. Ak hej tak mám tam definovanú funkciu ale ak var = 0, tak mi vyhodi chybu v programe, že list s takým textom neexistuje. To by ani tak nevadilo, ale potrebujem týchto typov var pre dané listy pridať do stromu viac, nielen na obrázky ale aj video hudba a podobne. Nevedel by mi niekto pomôcť, ako to vyriešiť tak, aby mi nevyhadzovalo chybu?

Editováno 21.4.2013 20:56
 
Odpovědět
21.4.2013 20:37
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na roks
Petr Nymsa:21.4.2013 20:52

Využívej prosím tlačítka přidat kód (druhé zprava). Var je obecně špatný, ale používá se právě při dotazech LINQ. Metoda Single říká "vrátí element pokud je v kolekci obsažen pouze jednou jinak vyhodí vyjímku". V listě máš pravděpodobně položek se stejným názvem víc. var se nepoužívá pro klasickou práci s objekty !

Co přesně požaduješ ? Vyhledat kolik máš v v listě stejných položek ?

Nahoru Odpovědět
21.4.2013 20:52
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na roks
David Hartinger:21.4.2013 20:55

Místo var dej typ, jehož instance v listu jsou.

Nahoru Odpovědět
21.4.2013 20:55
You are the greatest project you will ever work on.
Avatar
roks
Člen
Avatar
roks:21.4.2013 21:09

zirko : potrebujem rpesne to, aby ked kliknem na Nody v treeView, tak ku každemu textu je priradeny jeden list a ten sa zobrazi... hladal som na internete, skusil som použiť taktiež var ale nie prikaz .Single ale .SingleOrDefault a už mi to ide jak má :) ... a keď je "Var" zlý, tak aký typ by si mi odporučil? ...
sdraco : ale ja mam v liste string a aj bitmap, takže to nepojde :) ...
ale ako som už spomenul, už to ide, ale vďaka za pomoc :)

 
Nahoru Odpovědět
21.4.2013 21:09
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na roks
Petr Nymsa:21.4.2013 21:20

Pokud máš v listě string a Bitmapu znamená to že máš vlastní třídu. Třída můe mít klidě 15 atributů a do Treeview, listboxu, čehokoliv to stejně dáš. Při vytahování zpět to akorát přetypuješ zpět.

Příklad vytažení dat z listobxu, jeden vybraný item

MojeKrasnaSuperTrida polozka=(MojeKrasnaSuperTrida)this.listBox.SelectedItem;
Nahoru Odpovědět
21.4.2013 21:20
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na roks
David Hartinger:21.4.2013 21:27

Tohle je důvod, proč tyto věci vůbec nemají existovat. Udělej si hezky třídu s dvěma atributy.

Nahoru Odpovědět
21.4.2013 21:27
You are the greatest project you will ever work on.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Hartinger
Petr Nymsa:21.4.2013 21:30

Tak to on by i snad měl mít ne ? Jak jinak dokázal dát od Listu string a bitmapu ? var mě taky přijde jako výmysl, i když velmi zřídka se použije. Na C# se mi právě líbí typovatelnost, v PHP mi to přijde strašně zmatečný, když do stejný proměnný jednou ložím string, podruhý číslo a potřetí z něj mám pole, ale jde o zvyk.

Nahoru Odpovědět
21.4.2013 21:30
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
roks
Člen
Avatar
roks:21.4.2013 21:39

Áno mám list vytvorený z triedy. Aha takže stačí keď miesto var dám ako typ názov mojej triedy?

 
Nahoru Odpovědět
21.4.2013 21:39
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na roks
Petr Nymsa:21.4.2013 21:43

Úplně nevíš která bije. Přečti si zdejší tutoriály, nejdříve základy, až to budeš zvládat začni s OOP. Ano můžeš, int je také objekt

Nahoru Odpovědět
21.4.2013 21:43
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
roks
Člen
Avatar
roks:21.4.2013 21:48

ale viem, spravil som to tak, jak som to mal, ale prepísal som namiesto var nazov mojej triedy jak si spomenul a funguje to ;)

 
Nahoru Odpovědět
21.4.2013 21:48
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na roks
Petr Nymsa:21.4.2013 21:49

Dobře, ale kdyby jsi měl základní znalosti tohle by jsi měl vědět.

if(n!=null)**{}**

se nevolá funkce ale podmínka atd :)

Nahoru Odpovědět
21.4.2013 21:49
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
roks
Člen
Avatar
roks:21.4.2013 21:54

ok ok, uznávam moja chyba... mám základné znalosti ale mýliť sa je ľudské :)

 
Nahoru Odpovědět
21.4.2013 21:54
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na roks
Petr Nymsa:21.4.2013 21:57

Já to nemyslel zle ;) Ale aby jsi do budoucna třeba neříkal něco co je vlastně špatně. Já se také stále učím a vlastně každý z nás :)

Nahoru Odpovědět
21.4.2013 21:57
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
roks
Člen
Avatar
roks:21.4.2013 22:03

ok tak dík :)

 
Nahoru Odpovědět
21.4.2013 22:03
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 14 zpráv z 14.