Alla exempel på Prestanda
This commit is contained in:
70
Strings/Program.cs
Normal file
70
Strings/Program.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user