Avatar
David
Neregistrovaný
Avatar
David:

Ahoj, jsem začátečník tak prosím berte na to ohled. Dokázal by mě někdo poradit jak tuhle podmínku přepsat do OOP ? Nutně bych to potřeboval nevím si rady. Pokud by měl někdo čas tak dokonce přepsat. Sám nemám představu jak to napsat. Podmínka by měla řadit podle jména a podle věku. Takhle to také funguje jak to mám napsaný, ale nemohu to takto nechat. Děkuji všem co pomohou ani nevíte jak by jste mi pomohly.

private void Serad(string podle)
{

for (int i = pole.Length; i > 1; i--)
{

for (int j = 1; j < i; j++)
{

pruchodny++;
if (podle == "Vek")
if (pole[j - 1].Vek > pole[j].Vek)
{

goto zmena;

}
if (podle == "Name")
if (pole[j - 1].Name.Compa­reTo(pole[j].Na­me) > 0)
{

goto zmena;

}

goto konec;

 
Odpovědět 3.11.2013 13:08
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na David
David Čápka:

Místo celého toho balastu stačí napsat:

uzivatele.OrderBy(u => u.Vek);

Na příkaz goto zapomeň.

Nahoru Odpovědět  +2 3.11.2013 13:11
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
slowk
Člen
Avatar
Odpovídá na David Čápka
slowk:

I ty cykly mohu smazat ?

 
Nahoru Odpovědět 3.11.2013 13:19
Avatar
Odpovídá na David
Jakub Lásko[Saarix]:

Tohle mě spíš připomíná jeden z jazyků z minulé soutěže. GOTO jsem opravdu už dlouho neviděl.

Nahoru Odpovědět 3.11.2013 13:28
Časem je vše možné.
Avatar
slowk
Člen
Avatar
slowk:

Moc nerozumím tomu jak to mám zapsat. Jak to do toho vložím. A co jsem nenapsal bude se věk nebo jméno řadit podle toho jako stisknu tlačítko, takže se to bude řadit vždy jen jedno.

 
Nahoru Odpovědět 3.11.2013 13:29
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na slowk
David Čápka:

Ty nerozumíš podle toho kódu více věcem, to by bylo asi na déle. Přečti si zdejší tutoriály, alespoň ty úplně základní, abys uměl používat podmínky a cykly. Základy OOP tu jsou taky.

Nahoru Odpovědět 3.11.2013 13:50
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
slowk
Člen
Avatar
Odpovídá na David Čápka
slowk:

Máš pravdu nerozumím.. c# opravdu neumím a snažím se to tak letmo pochopit. Jenže potřebuji to do zítra udělat. A prostě si nevím rady. Nebyl by někdo ochotný třeba v mailu mi to nějak pomoct vyřešit ?

 
Nahoru Odpovědět 3.11.2013 13:59
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na slowk
Jan Vargovský:

Napiš co konkrétně to má dělat, luštit kód z goto se mi fakt nechce.

 
Nahoru Odpovědět 3.11.2013 14:00
Avatar
Kit
Redaktor
Avatar
Odpovídá na slowk
Kit:

Však ti David Čápka napsal řešení.

Nahoru Odpovědět 3.11.2013 14:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
slowk
Člen
Avatar
slowk:

Mám náhodně generovaný jména a k tomu se mi generuje věk to se opakuje 100 krát,takže mám sto jmen a stokrát k tomu věk. Na stránce jsou 2 tlačítka a jedno má řadit podle jména a druhý podle věku.

 
Nahoru Odpovědět 3.11.2013 14:02
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na slowk
Jan Vargovský:

http://leteckaposta.cz/792398672

EDIT: Protože to za 3 týdny z uložiště vypadne, tak tu hodím alespoň důležité části pro ostatní :

class Uzivatel
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public override string ToString()
        {
            return string.Format("{0} - {1}", Name, Age);
        }
    }
// Seřazení dle jména
uzivatele.OrderBy(u => u.Name).ToList();
// Seřazení dle věku
uzivatele.OrderBy(u => u.Age).ToList();
// Seřazení dle jména a pak věku
uzivatele.OrderBy(u => u.Name).ThenBy(u => u.Age).ToList();

POZN. Ty dotazy vrací novou kolekci!!!
Né že vám to jen seřadí, protože můžete mít dotaz třeba, kde vyberete navíc uživatele, které jsou starší než 20 ( .Where( u => u.Vek > 50)) atd...

Editováno 3.11.2013 14:16
 
Nahoru Odpovědět  +1 3.11.2013 14:12
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
David Čápka:

Tomu říkám rychlost :D Pěkné.

Nahoru Odpovědět 3.11.2013 14:15
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
David Čápka:

Ještě ma napadlo, že Sort na listu by mělo brát taky delegát, takže by se to mohlo rovnou třídit místo nahrazování kolekce. Byl by ale asi problém s bindingem.

Nahoru Odpovědět 3.11.2013 14:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na David Čápka
Jan Vargovský:

Tím bindingem nevím co myslíš, ale ofc by to šlo. Včera jsem si to zrovna zkoušel :)

kolekce.Sort( (u1, u2) => u1.Vlastnost.CompareTo(u2.Vlastnost))
 
Nahoru Odpovědět 3.11.2013 14:24
Avatar
slowk
Člen
Avatar
slowk:

když já to mám na webu, ne formu :(

 
Nahoru Odpovědět 3.11.2013 14:29
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na slowk
David Čápka:

To říkáš brzo :D Si to uprav.

Nahoru Odpovědět 3.11.2013 14:39
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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 16 zpráv z 16.