अद्यतनWhat Gabe said
b.ToString()। गणना (ग => ग == '\ N') यहाँ भी काम करेगा, और न बनाने के अलावा बहुत कम कुशल हो सकता है ( स्ट्रिंग की एक अलग प्रति!)।
एक बेहतर तरीका, StringBuilder से एक स्ट्रिंग और यह बंटवारे बनाने (या स्ट्रिंग बनाने और
regex
यह ing) की तुलना में तेजी, StringBuilder पर गौर और वहाँ
'\n'
पात्रों की संख्या की गणना करने के लिए है में
निम्न एक्सटेंशन विधि स्ट्रिंग बिल्डर में वर्णों के माध्यम से गणना करेगी, तब आप उस पर लिनक कर सकते हैं जब तक कि आपके दिल की सामग्री न हो।
public static IEnumerable<char> GetEnumerator(this StringBuilder sb)
{
for (int i = 0; i < sb.Length; i++)
yield return sb[i];
}
... यहां इस्तेमाल किया, गिनती हो जाएगा 4
StringBuilder b = new StringBuilder();
b.AppendLine("Hello\n");
b.AppendLine("World\n");
int lineCount = b.GetEnumerator().Count(c => c =='\n');
स्रोत
2010-09-03 14:16:41
आप पंक्ति विराम की गिनती पर विचार किया है इस तरह? –
गिनती लाइन ब्रेक के साथ केवल समस्या यह है कि स्ट्रिंगबिल्डर को तरीकों का पता/अनुक्रमणिका नहीं मिला है - आपको या तो चार्स अनुक्रमित संपत्ति का उपयोग करने या परिणामी स्ट्रिंग (ToString()) में गिनने की आवश्यकता है। यदि आप बार-बार लाइन गिनती की ज़रूरत है तो दोनों अक्षम हो सकते हैं। – VinayC
जॉन, इसके लिए बहुत सारे स्पष्ट समाधान हैं; क्या आप यह बताने के लिए संदर्भ दे सकते हैं कि ये समाधान आपके लिए व्यवहार्य क्यों नहीं हैं? – tenfour