各文字列の単語数に基づいて文字列のリストをフィルタリングしようとしています。私はあなたが文字列の末尾に空白をトリムし、その後、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();
}
単語を数えるためのアイデアはありますか?
UPDATE:これは魅力のように働いた...おかげでマシュー:あなたはスペースがそうのような区切り文字として確実に使用できることを示しているので、
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();
ありがとうございました...次のような機能が魅力的です。 – Jeagr
int minWords = int.Parse(numeric_MinWords.Text); int maxWords = int.Parse(numeric_MaxWords.Text); splitBox1.Where(x => x.Trim()。Split(new char [] '、StringSplitOptions.RemoveEmptyEntries).Count()> = minWords && x.Trim()。Split(new char(){''}、StringSplitOptions.RemoveEmptyEntries).Count()<= maxWords).ToList(); – Jeagr
LINQクエリを使用するより効率的な方法ですか? – Jeagr