C# - Lägga till värden i array mha textbox

Trädvy Permalänk
Medlem
Registrerad
Okt 2008

C# - Lägga till värden i array mha textbox

Hej!

Har fastnat på en uppgift där man ska skriva in olika tal i en textbox, vid varje knapptryck ska talet läggas till i en array.
Detta är ju lätt om man använder en lista istället för en array, då blir det något i stil med: Listnamn.Add(int.Parse(textBox1.text));

Min fråga är hur man ska gå tillväga om man använder sig utav en array istället för en lista?
Har googlat utan att hitta något bra svar och det står inget om detta i min bok. Har testat med bl a en for-loop men lyckas bara sätta alla elementen till samma värde hehe. Vill ju att det första inmatade värdet sparas i: arraynamn[0], det andra inmatade som arraynamn[1] osv..
Hade tänkt göra en metod som gör detta sen anropa den vid knapptrycket.

Vore tacksam om någon kunde knuffa mig i rätt riktning!

HTPC: Late 2014 Mac Mini
Bärbar: Mid 2012 MacBook Air

Trädvy Permalänk
Medlem
Registrerad
Sep 2011

Hur stor array skapar du från början? Vill du att den ska växa varje gång ett nytt element ska stoppas in? Om den har en fast storlek från början kan du använda någon form av räknare som håller koll på var i arrayen du stoppade in det senaste elementet och sen öka denna varje gång tills arrayen är full.

Asrock Z68 Extreme 7 gen 3 | EVGA GTX580 SLI | Intel i7 2600k | Corsair Vengeance 16GB
Corsair H80 | Corsair Force 3 120gb | HX1050 |NZXT Phantom | Samsung 22" SA300

Sony VAIO pro 13
i7 8GB 256GB

Trädvy Permalänk
Medlem
Plats
Westrobothnia
Registrerad
Okt 2008

Håll reda på index i arrayen i en variabel, och räkna upp variabeln med 1 för varje nytt inlägg av värde.

// Gör detta en gång int i = 0; // Gör detta för varje nytt inmatat värde dinArray[i] = värdet; i = i + 1;

Om det är tänkt att arrayen ska expandera allt eftersom, precis som en lista, så tillkommer det mer jobb dock. Ett vanligt sätt är att skapa en ny array med dubbla storleken av den gamla, och kopiera över alla värden från den gamla till den nya, när den gamla blir full.

if (i == dinArray.Length) { string[] nyArray = new string[dinArray.Length * 2]; Array.Copy(dinArray, nyArray, dinArray.Length); dinArray = nyArray; }

1800X, 2080 Ti, 4K

Trädvy Permalänk
Medlem
Registrerad
Okt 2008
Skrivet av backfeed:

Håll reda på index i arrayen i en variabel, och räkna upp variabeln med 1 för varje nytt inlägg av värde.

// Gör detta en gång int i = 0; // Gör detta för varje nytt inmatat värde dinArray[i] = värdet; i = i + 1;

Om det är tänkt att arrayen ska expandera allt eftersom, precis som en lista, så tillkommer det mer jobb dock. Ett vanligt sätt är att skapa en ny array med dubbla storleken av den gamla, och kopiera över alla värden från den gamla till den nya, när den gamla blir full.

if (i == dinArray.Length) { string[] nyArray = new string[dinArray.Length * 2]; Array.Copy(dinArray, nyArray, dinArray.Length); dinArray = nyArray; }

Tack så mycket för ditt svar! Har fått de o funka mha en räknare nu

HTPC: Late 2014 Mac Mini
Bärbar: Mid 2012 MacBook Air

Trädvy Permalänk
Medlem
Registrerad
Maj 2016

@Supermotard: Hur fick du den att funka?