Permalänk
Avstängd

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?

Permalänk
Medlem

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

Permalänk
Avstängd
Skrivet av BasseBaba:

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

juste, slarvfel

Permalänk
Avstängd

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.

Permalänk

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

Permalänk
Medlem

.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.

Permalänk
Avstängd
Skrivet av Full Strike:

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

Skrivet av 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?

Permalänk
Medlem
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".

Permalänk
Medlem

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å.

Visa signatur

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 |

Permalänk
Medlem

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++

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

Visa signatur

Ryzen 5600X | MSI Tomahawk | GTX 3070

Permalänk
Medlem
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.

Permalänk
Avstängd

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

Permalänk
Medlem

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

Permalänk
Medlem

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

Permalänk
Medlem

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.

Permalänk
Hedersmedlem

*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.

Visa signatur

Danskjävel så krattar som en skrivare...

Permalänk
Avstängd
Skrivet av 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.

Permalänk
Medlem
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.