私は学校プロジェクトのログを保存するプログラムを作成しました。私は実際にいくつかの助けに感謝する2つの質問があります。リスト内のC#配列
2つの文字列を含む配列をリストに上書きしないでリストに保存するにはどうすればよいですか?私が今行ってきたやり方は、新しいリストをリストに追加するのではなく、最初の配列を上書きします。
ディクショナリを使用せずにリスト内の配列を検索する最も簡単な検索アルゴリズムは何ですか?
私の最初の質問のコードは、最初のswitch文で見つけることができます。あなたの出力データ配列post
ないあなたは以上のforeach item
:ケース2で
public void Loggbok()
{
bool isRunning = true;
//List and the Array inside the list that the user can save logs into
List<string[]> loggBok = new List<string[]>();
string[] post = new string[2] { "Title", "Entry" };
//While loop with all the user interaction
while (isRunning)
{
//The menu that the user can type 1-5 in order to make a option
Console.WriteLine("\n\tWelcome to the logbook.\n\tPlease type a number between 1-5.\n");
Console.WriteLine("\t[1]Create a log to the logbook");
Console.WriteLine("\t[2]Display all the current logs saved");
Console.WriteLine("\t[3]Search the logbook ");
Console.WriteLine("\t[4]Erase all logs ");
Console.WriteLine("\t[5]Quit ");
Console.Write("\tChoose a number: ");
//Take userinput & convert into a number with TryParse
string MenuOption = Console.ReadLine();
int userNumber;
int.TryParse(MenuOption, out userNumber);
//Take userNumber and let number 1-5 start the switch
switch (userNumber)
{
case 1:
{ // Save a new log
Console.Clear();
//Let the user type a title to the log
Console.Write("Titel: ");
post[0] = Console.ReadLine();
//Let the user type a entry and then save it to the array inside the list
Console.Write("Entry: ");
post[1] = Console.ReadLine();
loggBok.Add(post);
Console.Clear();
break;
}
case 2:
{
//Show all the saved logs with a foreach loop
Console.Clear();
foreach (var item in loggBok)
{
Console.WriteLine("\nTitel: " + post[0] + "\nEntry: " + post[1]);
}
Console.Write("\nPress any key to get back to the main meny.\n");
Console.ReadLine();
Console.Clear();
break;
}
case 3:
{
break;
}
case 4:
{
//Reset all logs
Console.Clear();
loggBok.Clear();
Array.Clear(post, 0, post.Length);
Console.WriteLine("Erasing all logs... Done.");
Console.Write("\n\nPress any key to get back to the main meny.\n");
Console.ReadLine();
Console.Clear();
break;
}
case 5:
{
//Closing the app
Console.Clear();
Console.WriteLine("Thanks for using the app, goodbye! ");
isRunning = false;
Console.ReadLine();
break;
}
default:
{
// Tell the user to type 1 - 5
Console.Clear();
Console.WriteLine("Something went wrong. Choose a number between 1-5.");
Console.ReadLine();
Console.Clear();
break;
}
}
}
}
/*
Main method
This Run Class creates a new instance so that the loggProgram is being called upon.
Then it starts the program in a new instance.
*/
class Run
{
static void Main(string[] args)
{
new loggProgram().Loggbok();
}
}
move string [] post =新しい文字列[2] {"Title"、 "Entry"}; whileループに追加します。上書きを停止します –
1つの質問のみをお願いします。[**最小限、完全で、検証可能な例](https://stackoverflow.com/help/mcve) – Stijn
Alex Krupkaに感謝します。私はあなたのアドバイスで試してみましたが、残念ながら私の問題を解決していないようです。これは配列内の前の文字列を上書きし続けます – Nebula