各文字列の単語数に基づいて文字列のリストをフィルタリングしようとしています。WordCount = NumberOfSpaces + 1 となるように、文字列の末尾にある空白をすべて削除してから、文字列に残っている空白の数を数えることを想定しています。これが最も効率的な方法でしょうか? 文字数に基づいてフィルタリングする場合、次のようにするとうまくいくことはわかっています... C#/LINQ を使用して簡潔に記述する方法がわかりません。
if (checkBox_MinMaxChars.Checked)
{
int minChar = int.Parse(numeric_MinChars.Text);
int maxChar = int.Parse(numeric_MaxChars.Text);
myList = myList.Where(x =>
x.Length >= minChar &&
x.Length <= maxChar).ToList();
}
単語を数えるためのアイデアはありますか?
更新:これは魅力のように機能しました...ありがとうマシュー:
int minWords = int.Parse(numeric_MinWords.Text);
int maxWords = int.Parse(numeric_MaxWords.Text);
sortBox1 = sortBox1.Where(x => x.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count() >= minWords &&
x.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count() <= maxWords).ToList();