c# konvertera string[] till int

Permalänk
Medlem

c# konvertera string[] till int

Behöver hjälp med att konvertera string array till en int har försökt lösa detta ett par timmar nu men hittar ingen lösning någonstans

static void Main(string[] args) { int nr = 10;//Värde för att skriva ut hur många tal som behöver fyllas i int indexPos = -1; int integer = 47; string[] array = new string[10];//En vektor för 10 värden for (int i = 0; i < array.Length; i++)//En for loop börjar på 0 går upp till nio ökar ett värde varje loop { Console.WriteLine("Skriv in " + nr + " tal");// Skriver ut i consolen array[i] = Console.ReadLine();//Låter mig skriva värdet på alla 10 tal nr--;//x värdet sjunker varje loop } foreach (int i in array) { indexPos++; Console.WriteLine("Indexposition [" + indexPos + "] har värdet " + i); } Console.ReadLine(); Console.ReadLine(); }

Permalänk
Medlem

Skapa en int array -> loopa igenom din string array & för varje avläst string värde, lägg till det i din int array.

I java hade det fungerat på detta sätt:

String str = dinStringArray[i]; int inum = Integer.parseInt(str); alternativt: int inum = Integer.parseInt(dinStringArray[i]);

Därefter lägger du till den i din int array genom t.ex. dinINTarray.add(inum)

Sen fortsätter du loopa till slutet av din string array.

Borde gå att göra något liknande i C#

Visa signatur

[IT-Dept]
Ryzen 1700 OC - 32 - 1070

Permalänk
Medlem

@godhetz:
@AllMessedUp:

Såhär gör man det i C#

string str = dinStringArray[i]; int inum = int.Parse(str); alternativt: int inum = int.Parse(dinStringArray[i]);

Visa signatur

3900X, RX 6700 XT, 32gb RGB RAM.

Permalänk
Tangentbordskonnässör

Du borde convertera din input till int och göra din "array" variabel till int[] istället.
Typ såhär:

string input = Console.ReadLine();//Låter mig skriva värdet på alla 10 tal array[i] = Convert.ToInt32(input);

Sen är det helt sjukt mycket annat som borde tas hänsyn till, men det kan du nog få lära dig en annan dag.
Men värt att tänka på är att kontrollera så att det faktiskt är en siffra som användaren knappar in och inte boktstäver. Som det ser ut nu kommer det smälla om man knappar in "12asdffadsfas" tex.

Permalänk
Medlem
Skrivet av godhetz:

Behöver hjälp med att konvertera string array till en int har försökt lösa detta ett par timmar nu men hittar ingen lösning någonstans

Som många redan nämnt så gör du det enklare för dig om du redan vid inmatningen konverterar till en int.
Tänk på att felhantera inmatningen, vad händer nu om användare skriver en bokstav istället för en siffa? (hint: googla och läs på angående int.TryParse).

Sen ser jag att du använder lite olika variabler för att hantera vilket nummer som ska skrivas ut i loopen samt index positionen i din array. Dessa variabler kommer du redan åt i din loop via din loop variabel i.
Loopen börjar på 0 för att index 0 är första positionen i en array. Så om du vill skriva ut 1-10 istället för 0-9 så får du skriva i + 1 din utskrift.

Om du behöver komma åt ett index, använd en for-loop istället för foreach. Ser bara konstigt ut att öka en annan variabel och sen göra en foreach, när en for-loop har detta inbyggt.

static void Main(string[] args) { int integer = 47; // Vad har denna för funktion? int[] array = new int[10]; //En vektor för 10 värden for (int i = 0; i < array.Length; i++) //En for loop börjar på 0 går upp till nio ökar ett värde varje loop { Console.WriteLine($"Skriv in {i+1} tal");// Skriver ut i consolen array[i] = int.Parse(Console.ReadLine());//Låter mig skriva värdet på alla 10 tal } for (int i = 0; i < array.Length; i++) { Console.WriteLine($"Indexpostion {i} har värdet {array[i]}"); } Console.ReadLine(); }

Permalänk
Avstängd
Skrivet av zaibuf:

Som många redan nämnt så gör du det enklare för dig om du redan vid inmatningen konverterar till en int.
Tänk på att felhantera inmatningen, vad händer nu om användare skriver en bokstav istället för en siffa? (hint: googla och läs på angående int.TryParse).

Sen ser jag att du använder lite olika variabler för att hantera vilket nummer som ska skrivas ut i loopen samt index positionen i din array. Dessa variabler kommer du redan åt i din loop via din loop variabel i.
Loopen börjar på 0 för att index 0 är första positionen i en array. Så om du vill skriva ut 1-10 istället för 0-9 så får du skriva i + 1 din utskrift.

Om du behöver komma åt ett index, använd en for-loop istället för foreach. Ser bara konstigt ut att öka en annan variabel och sen göra en foreach, när en for-loop har detta inbyggt.

static void Main(string[] args) { int integer = 47; // Vad har denna för funktion? int[] array = new int[10]; //En vektor för 10 värden for (int i = 0; i < array.Length; i++) //En for loop börjar på 0 går upp till nio ökar ett värde varje loop { Console.WriteLine($"Skriv in {i+1} tal");// Skriver ut i consolen array[i] = int.Parse(Console.ReadLine());//Låter mig skriva värdet på alla 10 tal } for (int i = 0; i < array.Length; i++) { Console.WriteLine($"Indexpostion {i} har värdet {array[i]}"); } Console.ReadLine(); }

Jag håller med dig helt, men kan vi inte sluta översätta array med vektor. Det finns redan vector i C# liksom, det skapar bara förvirring.

Permalänk
Medlem
Skrivet av snajk:

Jag håller med dig helt, men kan vi inte sluta översätta array med vektor. Det finns redan vector i C# liksom, det skapar bara förvirring.

Definitivt. Det är mycket svårare för studenterna att ta till sig information och att själv söka information online om de tvingar sig lära sig termer på svengelska, som dessutom är förvirrande. De borde ha läroböcker på engelska då all information om programmering online är på engelska.

Permalänk
Tangentbordskonnässör