Seřazení "metody" – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Seřazení "metody" – .NET – Fórum – Programujte.comSeřazení "metody" – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
antybart0
Návštěvník
29. 5. 2012   #1
-
0
-

Dobrý den, mám takový problém s řazením . Tento kód vypíše devět prvků z  této vlastnosti "public List<karta> michej"

Potřeboval bych  hra.michej[i].Cis  hodit do pole, zkouším to všelijak možně, ale nedaří se. Děkuji

int i = 0;
            while (i < 9)
            {
                Console.Write(hra.michej[i].Cis + " ");
                i++;
            }
Nahlásit jako SPAM
IP: 217.29.8.–
Chrasty
~ Redaktor
+4
Posthunter
29. 5. 2012   #2
-
0
-

#1 antybart

Ahoj,

pro procházení polem/kolekcí je lepší použít cyklus for nebo foreach (v tomhle případě for, protože tě zajímá jen n prvků).

Ale zpět k tvému dotazu: nerozumím tomu, jak souvisí kód co jsi přidal s tvým dotazem, vždyť v tom kódu se nijak ten List nesnažíš převést do pole.

Jinak List na pole přeměníš jednoduše:

//Předpokládám, že existuje instance List<Karta> michej
Karta[] karty = michej.ToArray();

Pokud potřebuješ něco jiného, tak to prosím trochu upřesni.

Nahlásit jako SPAM
IP: 193.179.196.–
antybart0
Návštěvník
29. 5. 2012   #3
-
0
-

#2 Chrasty
Jo už mi dochází že to je blbě napsané. Já chci tuto vlastnost "public List<karta> michej" nechat nejdříve vypsat - to je ten kód, následně pak ty čísla seřadit od nejmenších po největších. Snad už to je srozumitelnější. Instance existuje.

Nahlásit jako SPAM
IP: 217.29.8.–
Chrasty
~ Redaktor
+4
Posthunter
29. 5. 2012   #4
-
0
-

#3 antybart
Aha, v tom případě by ten tvůj kód měl fungovat, ale jak už jsem řekl, lepší by bylo

for(int i=0;i<9;i++)
{
    Console.Write(hra.michej[i].Cis + " "); // Vlastnost Cis je asi typu int, že?
}

Mělo by to normálně fungovat.

A co se seřazení čísel týče, tak List na to má metodu OrderBy (pokud to tedy nepotřebuješ jako nějakou úlohu do školy na algoritmizaci).

var karty = hra.michej.OrderBy(x => x.Cis).ToList();
// v proměnné karty bude uložený List seřazený podle vlastnosti Cis

Ten operátor "=>" je lambda operátor a ten výraz je lambda výraz, kdyby sis o tom někde chtěl přečíst něco víc:)

Nahlásit jako SPAM
IP: 193.179.196.–
antybart0
Návštěvník
31. 5. 2012   #5
-
0
-

#4 Chrasty
jo, lamda operátor znám, ale nepoužívám. Tenhle kód: 

for(int i=0;i<9;i++)
{
    Console.Write(hra.michej[i].Cis + " ");
}

vypíše 9 prvků z litu. vlastnost Cis je z enumu. A já bych teda potřeboval ty prvky seřadit. Snažím se to dát do pole. Takhle:  

int[] karty = new int[] {hra.michej[i].Cis };

A pak prý existuje nějaká vlastnost Array.Sort, která prvky seřadí. 
Takže: Snažím se vypsat devět prvků a tz pak seřadit. 

Nahlásit jako SPAM
IP: 62.209.200.–
Chrasty
~ Redaktor
+4
Posthunter
31. 5. 2012   #6
-
0
-

#5 antybart
V tomhle kódu 

int[] karty = new int[] {hra.michej[i].Cis };

Každým průchodem cyklu inicializuješ celé pole znovu (díky slůvku new). Potřebuješ kód, který na i-té místo v poli vloží i-tý prvek z listu:

karty[i] = hra.michej[i].Cis;

Předpokladem samozřejmě je, že už máš vytvořené pole karty o velikosti stejné jako je ten původní List:


int[] karty = new int[michej.Count];
Nahlásit jako SPAM
IP: 193.179.196.–
Řešení
antybart0
Návštěvník
31. 5. 2012   #7
-
0
-
Vyřešeno Nejlepší odpověď

   

int[] karty = new int[michej.Count];

a tohle teda pak už půjde seřadit?

Nahlásit jako SPAM
IP: 62.209.200.–
Chrasty
~ Redaktor
+4
Posthunter
31. 5. 2012   #8
-
0
-

#7 antybart
Zkusit to je otázka asi pěti vteřin a měl bys to rychleji než čekat na mou odpověď :-) Ale ano, půjde to seřadit tou metodou Array.Sort.

Nahlásit jako SPAM
IP: 193.179.196.–
antybart0
Návštěvník
31. 5. 2012   #9
-
0
-

#8 Chrasty
já jsem momentálně na pc bez VS, a na PC s VS se dostanu až k večeru, jinak dík moc

Nahlásit jako SPAM
IP: 62.209.200.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Seřazení — založil Jakub656

Seřazení v seznamu — založil Jakub Vojáček

Seřazení polí — založil soudruh

Seřazení čísel — založil Ondra

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý