class Program { static void Main(string[] args) { while (true) { Console.WriteLine(); Console.WriteLine("=== Strings-meny ==="); Console.WriteLine("1: Med concat"); Console.WriteLine("2: Med StringBuilder"); Console.WriteLine("0: Avsluta"); Console.Write("Ditt val: "); var choice = Console.ReadLine(); if (choice == "0") { Console.WriteLine("Avslutar..."); break; } int n = ReadPositiveInt("Hur många tal (n) vill du generera? "); switch (choice) { case "1": { string result = BuildNumbers_WithConcat(n); Console.WriteLine("Resultat (concat):"); Console.WriteLine(result); break; } case "2": { string result = BuildNumbers_WithStringBuilder(n); Console.WriteLine("Resultat (StringBuilder):"); Console.WriteLine(result); break; } default: Console.WriteLine("Ogiltigt val. Försök igen."); break; } } } static int ReadPositiveInt(string prompt) { while (true) { Console.Write(prompt); // Försök tolka inmatningen if (int.TryParse(Console.ReadLine(), out int n) && n > 0) return n; // Om ogiltig inmatning: Console.WriteLine("Ange ett heltal större än 0."); } } static string BuildNumbers_WithConcat(int n) { string result = string.Empty; for (int i = 0; i < n; i++) { result += i; // ny sträng i heapen varje iteration } return result; } static string BuildNumbers_WithStringBuilder(int n) { var sb = new System.Text.StringBuilder(n * 2); for (int i = 0; i < n; i++) { sb.Append(i); } return sb.ToString(); } }