Alla exempel på Prestanda

This commit is contained in:
2026-03-12 10:33:09 +01:00
commit 607b4151cb
133 changed files with 4493 additions and 0 deletions

70
Strings/Program.cs Normal file
View 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();
}
}