ログブックとして動作するプログラムを作成しようとしています。私が今直面している唯一の問題は、ユーザーが投稿を検索できるようにしてからそれを印刷する検索機能です。私は何が間違っているのか分からず、私は多くの記事を見てきました。あなたの情報については、ログブック全体がリストであり、すべてのポストはこのリストの配列です。検索機能は3の場合です。プログラムがコンパイルされていますが、古いポストを検索するときに問題が発生し、System.String []のみが出力されます。また、ユーザーが投稿のタイトルを検索したときにタイトルと投稿の両方がタイトルに印刷されて印刷されるようにする必要があります。ここ リスト内の配列を使用しているC#の検索機能は、単に "System.String []"を出力します
はコードです:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Loggbok
{
class MainClass
{
public static void Main(string[] args)
{
bool running = true;//Ger ett booleskt värde till variabeln running för att kunna skapa en loop
List<string[]> loggbok = new List<string[]>();
// int loggIndex = 0; // Används för att fylla Arrayen
while (running)//Här skapas loopen
{
Console.WriteLine("\nVälkommen till loggboken!");
Console.WriteLine("\n[1] Skriv ett inlägg");
Console.WriteLine("[2] Skriv ut alla inlägg");
Console.WriteLine("[3] Sök inlägg");
Console.WriteLine("[4] Avsluta loggboken");
Console.Write("\nVälj: ");
int option;
try
{
option = Int32.Parse(Console.ReadLine());
}
catch
{
Console.WriteLine("Fel, du får bara skriva in nummer");
continue;
}
switch (option)
{
case 1:
string[] logg = new string[2];
Console.WriteLine("Ange en Titel");
logg[0] = Console.ReadLine();
Console.Clear();
Console.WriteLine("Ange text");
logg[1] = Console.ReadLine();
loggbok.Add(logg);
break;
case 2:
foreach (string[] item in loggbok)
{
Console.WriteLine(item[0]);
Console.WriteLine(item[1]);
}
Console.ReadLine();
break;
case 3:
Console.WriteLine("Skriv in ett ord du vill söka efter i loggboken");
var nyckelord = Console.ReadLine();
var entries = loggbok.Where(entry => entry.Contains(nyckelord));
foreach (var entry in entries)
{
Console.WriteLine(entry);
}
if (entries.Count() == 0)
{
Console.Write("Din sökning misslyckades...");
}
break;
case 4:
running = false;
break;
}
}
}
}
}
'Console.WriteLine(entry);'をConsole.WriteLine(entry [0]);に変更します。ここで、0は配列内で取り出す要素のインデックスです –