私はしばらくこれについて頭を悩ませてきました。このコードを実行すると、Index out of Bounds が発生し続けます。
基本的に、私はテキストボックスを取り、それを配列に分割し、配列の各インデックスを使用して、文字列でいっぱいの配列と比較しました。関連するコードを貼り付けました。私が間違っていたことがわかりますか?
エラー点の近くにエラーを置くように設定しました。( <----- )
public partial class MainWindow : Window
{
string[] kbsubject = new string[4000];
string[] kbbody = new string[4000];
string[] wordsplit = new string[4000];
int[] hits = new int[4000];
StreamWriter WriteBody = new StreamWriter("kbsubjecttest.txt");
StreamReader readSubject = new StreamReader("kbsubject.txt");
StreamReader readBody = new StreamReader("kbbody.txt");
int IndexHolder = 0, counter = 0, counterSearch = 0, WordsIndex = 0, counterWord=0, ArrayIndex = 0;
string compareBody, compareSubject;
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
wordsplit = SearchBox.Text.Split(' ');
diagWindow.Items.Add(wordsplit.Length);
diagWindow.Items.Add("Preforming search by split");
WordsIndex = 1;
counterWord = 1;
while (counterSearch != wordsplit.Length)
{
if (kbbody[counterWord].Contains(wordsplit[WordsIndex])) <--------
{
hits[ArrayIndex] = counterWord;
ArrayIndex++;
counterWord++;
WordsIndex++;
}
else
{
ArrayIndex++;
counterWord++;
WordsIndex++;
}
}
}