Trädvy Permalänk
Avstängd
Registrerad
Jul 2018

Lista C#

Hej,

Jag har nu skrivit listan:

List<int> Lista = new List<int>();
Lista.Add(5);
Lista.Add(4);
Lista.Add(8);
Lista.Add(7);

foreach(int item in Lista)
{
Console.WriteLine(Lista);
}

när jag skriver ut den får jag följande felutskrift:

System.Collections.Generic.List`1[System.Int32]

Vad beror detta på och vad bör jag ändra i min kod för att få ut korrekt utskrift?

Trädvy Permalänk
Medlem
Registrerad
Aug 2002

Byt ut ”Lista” till ”item” i din writeline

OBS! Mina inlägg ska, där applicerbart, ses som mer allmänt filosoferande och avspeglar långt ifrån alltid min personliga åsikt i frågan.

Trädvy Permalänk
Avstängd
Registrerad
Jul 2018
Skrivet av BasseBaba:

Byt ut ”Lista” till ”item” i din writeline

juste, slarvfel

Trädvy Permalänk
Avstängd
Registrerad
Jul 2018

Count in List C#

Hej,

jag undrar hur jag räknar i en lista hur många gånger en utskrift skett, Lista.Count();

int count = 0;
Lista.Add(count++);

sedan skriver jag det som krävs för att få utskrift men det funkar inte att räkna såhär, hur räknar man?
Hoppas på exempel från er sida.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2012

Väldigt otydligt vad du menar. list.Count(); kommer returnera antalet element i listan.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Apr 2009

.Count berättar för dig hur många element det finns i din lista. Om du har lagt till tre saker i din lista så kommer Count == 3.

Om jag förstår din fråga rätt vill du skriva ut din lista samt räkna hur många utskrifter du gjorde. Detta skulle jag gjort enkelt med en variabel ex var count = 0.

För att sedan varje gång du skriver ut från listan så ökar du count med 1 (count++). Då kommer din variabel count vara antalet utskrifter gjorda.

Hoppas jag förstod dig rätt!

Om du alltid skriver ut hela listan behövs ingen variabel för att räkna hur många utskrifter du gjorde. Då behövs endast list.Count eftersom du kommer skriva ut lika många element som finns i listan.

Chassi: Fractal Design Define R3, Titanium CPU: Intel Core i7 7700K 4.8 GHz
MoBo: Gigabyte GA-Z270-Gaming K3 GPU: EVGA GTX 970 4 GB
RAM: Corsair LPX 16GB CL15 3000Mhz VENGEANCE SSD: Samsung 750 EVO 500GB
HDD: 500GB Seagate Barracuda 7200rpm PSU: LEPA B1000-MB

Trädvy Permalänk
Avstängd
Registrerad
Jul 2018
Skrivet av Full Strike:

Väldigt otydligt vad du menar. list.Count(); kommer returnera antalet element i listan.

Skrivet av L.Forsgren:

.Count berättar för dig hur många element det finns i din lista. Om du har lagt till tre saker i din lista så kommer Count == 3.

Om jag förstår din fråga rätt vill du skriva ut din lista samt räkna hur många utskrifter du gjorde. Detta skulle jag gjort enkelt med en variabel ex var count = 0.

För att sedan varje gång du skriver ut från listan så ökar du count med 1 (count++). Då kommer din variabel count vara antalet utskrifter gjorda.

Hoppas jag förstod dig rätt!

Om du alltid skriver ut hela listan behövs ingen variabel för att räkna hur många utskrifter du gjorde. Då behövs endast list.Count eftersom du kommer skriva ut lika många element som finns i listan.

Okej det här menar jag

int count = 0;
Lista.Add(count++);

Är det så man gör för att varje gång öka listan med 1 siffra varje gång?

Trädvy Permalänk
Medlem
Plats
Halland
Registrerad
Okt 2013
Skrivet av Daygamerme:

Okej det här menar jag

int count = 0;
Lista.Add(count++);

Är det så man gör för att varje gång öka listan med 1 siffra varje gång?

Det som den koden gör är lägger till värdet "1" i din lista. Nästa gång du kör din .Add() igen kommer du att lägga till värdet "2".
Men då har du två st värden i din lista, 1 och 2. Med Count() kan du ta reda på hur många värden listan har, då är svaret "2".

Trädvy Permalänk
Medlem
Registrerad
Jul 2005

Känns lite som du missförstår vad en lista är eller används till.

En lista

  • Rad ett i listan

  • Rad två i listan

  • Rad tre i listan

Gör jag en Count() på listan ovanför får jag 3, då listan innehåller 3st värden.

Lägger du till värdet i variablen count vid varje gång så får du (om du kör 3 st ggr)

  • 1

  • 2

  • 3

Gör du en Count() på denna listan så får du 3 så listan innehåller 3st värden.

Man det finns ingen direkt anledning att använda en lista då variabeln count innehåller just 3 också.

There are 10 types of people in the world: Those who understand binary, and those who don't...

Asus Maximus VIII Hero | i7-6700K | ASUS GeForce GTX1070 Strix 8GB | G.Skill F4-2133C15Q-32GRK |

Trädvy Permalänk
Medlem
Plats
Norrköping
Registrerad
Jan 2010

Vill du bara hålla reda på antal gånger en utskrift skett behöver du ju bara din count-variabel.

int count = 0;

...............

Console.WriteLine("Hello World!");
count++

.............

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Apr 2009
Skrivet av Daygamerme:

Okej det här menar jag

int count = 0;
Lista.Add(count++);

Är det så man gör för att varje gång öka listan med 1 siffra varje gång?

.Add-metoden lägger till saker i listan. Så i parentesen vill du skriva in det du vill lägga till i listan.

Det är när du skriver ut till konsollen du ska använda variabeln count. Skilj på variabel count och propertien .Count.

Varje gång du skriver ut till konsollen ska du öka variabeln count med 1 (count++).

Exempel på workflow:

* Skapa en lista
* Lägg till värden i listan.
* Iterera över listan (loopa med foreach exempelvis).
* Skriv ut de värden du vill skriva ut. Du kanske exempelvis vill räkna hur många jämna tal det finns i din lista.
* Varje gång du skriver ut ett värde till konsollen som uppfyller dina krav som är ovanstående så ökar du count-variabeln med 1 (count++).
* Skriv ut count-variabeln till konsollen för att ta reda på hur många gånger du skrev från listan till konsollen.

Jag hoppas du får något ut av det ovanstående. Det finns även andra bra svar i tråden men ville bara skriva ut ett svar själv eftersom alla har olika sätt de förstår bäst på! Så jag hoppas mitt svar kompletterar något som du tyckte var oklart i de andra bra svaren.

Chassi: Fractal Design Define R3, Titanium CPU: Intel Core i7 7700K 4.8 GHz
MoBo: Gigabyte GA-Z270-Gaming K3 GPU: EVGA GTX 970 4 GB
RAM: Corsair LPX 16GB CL15 3000Mhz VENGEANCE SSD: Samsung 750 EVO 500GB
HDD: 500GB Seagate Barracuda 7200rpm PSU: LEPA B1000-MB

Trädvy Permalänk
Avstängd
Registrerad
Jul 2018

Count method C#

Hej,

Jag har i uppgift att räkna antal utskrifter, jag har hittills på egenhand gjort detta fast på ett simpelt sätt:
Console.WriteLine( " Antal gissningar: " +Count);
Lista.Add(Count++);

Ni ser hur jag försöker lösa uppgiften? genom att implementera i listan, men problemet är att framkalla listan.

Ni tycker säkert detta är fel? Man kan säkert göra detta på ett bättre sätt, till exempel genom att göra en metod som räknar antalet gånger?

Kollar runt på msnd och letar efter lösningar men hamnar på samma ställe verkar det som.

Ser fram emot svar med tips

Trädvy Permalänk
Medlem
Registrerad
Maj 2012

Varför lägger du det i en lista om du bara ska räkna och skriva ut?

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

Du kan börja med att läsa svaren du fick i förra tråden.
#17516587

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Apr 2009

Som @backlulund skriver. Du har bra svar i din andra tråd. Jag och några till har gått in lite mer djupt hur du bör tänka när du ska lösa din uppgift. Du kommer få exakt samma svar i denna tråd som den tidigare!

Om det är så som du skriver nu i denna trådstart om du ska räkna gissningar så behöver du inte använda en lista eftersom du gör inget med den.

Jag vet inte vad din uppgift är för något men jag skriver en hypotetisk uppgift här som handlar om att användaren ska gissa ett tal.

Användaren ska gissa ett hemligt tal i intervallet 1-20. För enkelhetens skull kan du hitta på ditt eget hemliga tal, exempelvis secretNumber = 5. Sedan ska ditt program räkna hur många gissningar som krävdes för att gissa rätt tal.

Det är nu du bör tänka på hur du vill försöka lösa problemet innan du sätter igång. Exempelvis så kan du lösa problemet på detta sätt:

* Skapa en count-variabel.
* Gör en while-loop(true)
* Användaren få gissa på vilken den tror är det hemliga talet.
* Varje gång användaren gissar på ett nummer (oavsett rätt eller fel) så öka count-variabeln med ett.
* Om användaren gissar rätt så bryt loopen med break.
* Efter att loopen är bruten kan du skriva ut hur många gissningar användaren gjort med count-variabeln.

Om du inte vill veta det hemliga numret innan du gissar får du kolla in hur Random() fungerar.

Chassi: Fractal Design Define R3, Titanium CPU: Intel Core i7 7700K 4.8 GHz
MoBo: Gigabyte GA-Z270-Gaming K3 GPU: EVGA GTX 970 4 GB
RAM: Corsair LPX 16GB CL15 3000Mhz VENGEANCE SSD: Samsung 750 EVO 500GB
HDD: 500GB Seagate Barracuda 7200rpm PSU: LEPA B1000-MB

Trädvy Permalänk
Forumledare
Kent
Registrerad
Jan 2005

*Tråd sammanfogade i enlighet med §3.3*

Observera att vi inte tillåter flera trådar om samma ämne (s.k. korspostning). Detta då vi tycker det är viktigt att alla får samma chans att få sina trådar uppmärksammade.

Synpunkter eller frågor gällande modereringen? Då kan du kontakta mig eller moderatorerna.
Ursäkta min stavning, jag är dansk

Trädvy Permalänk
Avstängd
Registrerad
Jul 2018
Skrivet av L.Forsgren:

.Add-metoden lägger till saker i listan. Så i parentesen vill du skriva in det du vill lägga till i listan.

Det är när du skriver ut till konsollen du ska använda variabeln count. Skilj på variabel count och propertien .Count.

Varje gång du skriver ut till konsollen ska du öka variabeln count med 1 (count++).

Exempel på workflow:

* Skapa en lista
* Lägg till värden i listan.
* Iterera över listan (loopa med foreach exempelvis).
* Skriv ut de värden du vill skriva ut. Du kanske exempelvis vill räkna hur många jämna tal det finns i din lista.
* Varje gång du skriver ut ett värde till konsollen som uppfyller dina krav som är ovanstående så ökar du count-variabeln med 1 (count++).
* Skriv ut count-variabeln till konsollen för att ta reda på hur många gånger du skrev från listan till konsollen.

Jag hoppas du får något ut av det ovanstående. Det finns även andra bra svar i tråden men ville bara skriva ut ett svar själv eftersom alla har olika sätt de förstår bäst på! Så jag hoppas mitt svar kompletterar något som du tyckte var oklart i de andra bra svaren.

Bra inlägg.

Jag har hittills gjort detta:

foreach(int item in Lista)
{
Console.WriteLine("Ditt högsta poäng är: " + item);
if (item >Count)
{
Console.WriteLine("Item");
}

Jag måste säga att jag har hard time med just denna uppgift, skulle behöva se ett exempel så jag kan lära mig.

Saken är den att programmet ska stängas av och sedan när den startas upp igen ska den komma ihåg mitt högsta värde från senast eller från alltid.

Jag undrar verkligen hur algoritmen till detta ser ut samt hur man ens kan göra detta med en lista.

Tacksam för svar.

Okej okej: Jag är klar nu, jag verkade försvåra uppgiften mer än den egentligen var. Har löst den nu helt på egenhand, men också tack vare ert tips, tack.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Apr 2009
Skrivet av Daygamerme:

Bra inlägg.

Jag har hittills gjort detta:

foreach(int item in Lista)
{
Console.WriteLine("Ditt högsta poäng är: " + item);
if (item >Count)
{
Console.WriteLine("Item");
}

Jag måste säga att jag har hard time med just denna uppgift, skulle behöva se ett exempel så jag kan lära mig.

Saken är den att programmet ska stängas av och sedan när den startas upp igen ska den komma ihåg mitt högsta värde från senast eller från alltid.

Jag undrar verkligen hur algoritmen till detta ser ut samt hur man ens kan göra detta med en lista.

Tacksam för svar.

Okej okej: Jag är klar nu, jag verkade försvåra uppgiften mer än den egentligen var. Har löst den nu helt på egenhand, men också tack vare ert tips, tack.

Härligt att du löste det! Och man gör det oftast mer krångligt än man behöver göra det när man är relativt ny. Jag vill påstå att jag är ganska ny till programmering egentligen men kan väl litegrann iaf.

Får man veta vad uppgiften var ordagrant? Bara lite nyfiken av mig.

Chassi: Fractal Design Define R3, Titanium CPU: Intel Core i7 7700K 4.8 GHz
MoBo: Gigabyte GA-Z270-Gaming K3 GPU: EVGA GTX 970 4 GB
RAM: Corsair LPX 16GB CL15 3000Mhz VENGEANCE SSD: Samsung 750 EVO 500GB
HDD: 500GB Seagate Barracuda 7200rpm PSU: LEPA B1000-MB