पर आधारित एक स्ट्रिंग फ़िल्टर करना मैं प्रत्येक स्ट्रिंग में शब्दों की संख्या के आधार पर तारों की एक सूची फ़िल्टर करने की कोशिश कर रहा हूं। मुझे लगता है कि आप स्ट्रिंग के सिरों पर किसी भी सफेद-स्थान को ट्रिम करेंगे, और फिर स्ट्रिंग में छोड़े गए रिक्त स्थान की संख्या गिनेंगी, ताकि WordCount = NumberOfSpaces + 1. क्या यह करने का सबसे प्रभावी तरीका है? मुझे पता है कि चरित्र गणना के आधार पर फ़िल्टरिंग के लिए निम्नलिखित ठीक काम कर रहा है ... बस यह समझ नहीं सकता कि इसे सी #/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();
धन्यवाद मैथ्यू ... निम्नलिखित एक आकर्षण की तरह काम किया! – Jeagr
int minWords = int.Parse (numeric_MinWords.Text); int maxWords = int.Parse (numeric_MaxWords.Text); sortBox1 = sortBox1.Where (x => x.Trim()। स्प्लिट (नया char [] {''}, स्ट्रिंगस्प्लिटऑप्शन। रीमूवइएक्ट्रीइन्ट्रीज़) .उंट()> = minWords && x.Trim()। विभाजन (नया char [] {''}, StringSplitOptions.RemoveEmptyEntries)। गणना() <= maxWords) .ToList(); – Jeagr
क्या LINQ क्वेरीज़ का उपयोग करने की तुलना में यह अधिक कुशल है? – Jeagr