以下のコードよりも洗練された方法を見つけて、含まれている単語の 1 つのインデックスに基づいて文のリストを取得しようとしています。たとえば、ユーザー名などの単語のリストを指定すると、それらすべての単語のインデックスが検索され (これは既に行われており、GetWordsMatches メソッドです)、その単語のインデックスを使用して、文全体をつかみます。
私には 2 つの問題があります。1 つは、単語の前から前のピリオドまでを調べる方法がわかりません。1 つは最後の単語の一致だけで、クラッシュを防ぐ方法がわかりません。ファイルの終わりの前のピリオド。
public static List<string> GetSentencesFromWords(List<string> Words, string FileContents)
{
List<string> returnList = new List<string>();
MatchCollection mColl = GetWordsMatches(Words,FileContents);
foreach (Match ma in mColl)
{
int tmpInd = ma.Index;
int endInd = FileContents.IndexOf(".", tmpInd);
string tmp = FileContents.Substring(tmpInd,endInd);
returnList.Add(tmp);
}
return returnList;
}
これを行うよりエレガントな方法はありますか?