これを調べて、ほぼ理解しましたが、このランタイムエラーが1つ残っています。
私のコードは次のとおりです。
while ((line = reader.ReadLine()) != null)
{
while (reader.Peek() != '\r')
{
datalinestream.Add(GetWord(reader));
}
LuceneDB.AddUpdateLuceneIndex(new MATS_Doc( datalinestream));
datalinestream.Clear();
}
コードはデータをインポートしていますが、ループは壊れず、次の理由でクラッシュします。
「タイプ 'System.OutOfMemoryException' の未処理の例外が mscorlib.dll で発生しました」
ファイル全体を読み取って最後にブレークするための、外側の while ループの適切なブレーク条件は何ですか。次の行に進む必要があり、スプレッドシートの最初の行をスキップする必要があるため、これに苦労しています。どんな助けでも大歓迎です。
*更新*
lucene インデックスのドキュメントを作成しているため、文字列のリストをクリアします。ドキュメントには約 14 個のフィールドしかなく、リストが大きくなりすぎないようにします。
getword の私のコード
private string GetWord(TextReader inputdata)
{
String word = "";
while (inputdata.Peek() >= 0)
{
word += (char)inputdata.Read();
if ((word.Contains(";"))) break;
}
return word;
}