Bloggen c# felhantering vektorer
Har skapat ett program som bra fungerar så länge inte användaren skriver in fler strängar än vad vektorn kan hålla. Strängvektorn håller 6 strängar, låt säga att användaren skriver in 7 och sedan försöker söka på det sjunde inlägget, då kraschar programmet. Hur felhanterar jag detta lättast?
namespace Inlämning_bloggen_realdeal
{
internal class Program
{
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.DarkCyan;
List<string[]> Bloggen = new List<string[]>();
bool minBool = true;
while (minBool)
{
användarMeny(); //Kallar på menymetoden
int meny;
int.TryParse(Console.ReadLine(), out meny);
string[] inlägg = new string[5]; //Strängvektor som håller 5 strängar
switch (meny)
{
case 1:
Console.Write("\tSkriv in titel: ");
inlägg[0] = Console.ReadLine(); //Sparar titel på blogginlägg
Console.Write("\tSkriv ditt inlägg: ");
inlägg[1] = Console.ReadLine(); //Sparar inlägget
inlägg[2] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //Sparar datum och tid när inlägget blev publicerat
Bloggen.Add(inlägg); //Lägger till inläggen i listan Bloggen
Console.WriteLine("\tDitt blogginlägg är sparat!");
Console.ReadLine();
Console.Clear();
break;
case 2:
Console.WriteLine("\tHär är alla dina sparade inlägg: ");
foreach(var bloggInlägg in Bloggen) //Loopar igenom listan "Bloggen"
{
Console.WriteLine(inlägg[2]); //Datum och tid
foreach(var post in bloggInlägg) //Plockar fram respektive vektor med sparade inlägg
{
Console.WriteLine("\t" + post); //Utskrift med alla sparade inlägg i strängvektorn
}
}
Console.ReadLine();
break;
case 3:
Console.Write("\tSkriv in titeln på det inlägg du söker: ");
string sökning = Console.ReadLine();
for(int i = 0;i < Bloggen.Count; i++)
{
string[] användarInlägg = Bloggen[i];
if (sökning == användarInlägg[0] || sökning == användarInlägg[i])
{
Console.Clear();
Console.WriteLine("\tDin sökning lyckades, här är inlägget du sökte efter: \n\n\t" + användarInlägg[0] +"\n\t"+ "\n\t" + användarInlägg[1] +"\n\t" + användarInlägg[2]); //Hittas ett sparat inlägg skrivs det ut
break;
}
else
{
Console.WriteLine("\tDin sökning misslyckades!"); // Annars får man detta felmeddelande
}
}
Console.ReadLine();
break;
case 4:
Bloggen.Clear(); //Rensar listan på innehåll
Console.WriteLine("\n\tBlogginlägg rensade!");
Console.ReadLine();
break;
case 5:
Console.WriteLine("\n\tTack för din tid och välkommen åter till bloggen!");
Thread.Sleep(2000);
minBool = false;
break;
default:
Console.WriteLine("\n\tDu har matat in något felaktigt, var vänlig välj ett av alternativen i menyn!"); //
Console.ReadLine();
break;
}
}
}
static void användarMeny()
{
Console.Clear();
Console.WriteLine("\t----*Välkommen till bloggen!*----\n\n" + "\tGör ditt menyval:\n");
Console.WriteLine("\t[1] Skriv nytt inlägg");
Console.WriteLine("\t[2] Visa alla dina sparade inlägg");
Console.WriteLine("\t[3] Sök efter ett inlägg");
Console.WriteLine("\t[4] Rensa alla inlägg");
Console.WriteLine("\t[5] Avsluta program");
}
}
}