2013-01-03 70 views
10

को छोड़कर स्ट्रिंग में नई लाइन को जोड़ने का सबसे अच्छा तरीका मैं स्ट्रिंग्स की सूची में पुन: प्रयास करने के लिए सबसे अच्छा/साफ-सुथरा तरीका ढूंढ रहा था और फिर नई लाइनों (अंतिम को छोड़कर) की अलग-अलग स्ट्रिंग बनाना चाहता था। इसलिए जैसा:अंतिम

String 1 
String 2 
String 3 

मैं दो छोरों यहाँ लिखा जो स्ट्रिंग (जो मैं से बचना चाहते हैं) के अंत में एक नई पंक्ति है और दूसरा वह ऐसा नहीं करता है। कोई मुझे सिर्फ "साफ" नहीं लग रहा है। मुझे लगता है कि ऐसा करने का एक आसान तरीका होगा ताकि तर्क लगभग उतना आसान हो जैसा कि स्ट्रिंग के अंत में एक नई पंक्ति है।

List<string> errorMessages = new List<string>(); 
string messages = ""; 

//Adds newline to last string. Unwanted. 
foreach(string msg in errorMessages) 
{ 
    messages += msg + "\n"; 
} 

messages = ""; 
bool first = true; 

//Avoids newline on last string 
foreach (string msg in errorMessages) 
{ 
    if(first) 
    { 
     first = false; 
     messages = msg; 
    } 
    else 
    { 
     messages += "\n" + msg; 
    } 
} 

शायद यह इच्छाधारी सोच है, लेकिन मैं सोचा होगा यह एक बेहतर तरीका मेरा लक्ष्य पूरा करने के लिए वारंट के लिए एक आम पर्याप्त घटना थी।

उत्तर

26

आप String.Join का उपयोग कर सकते हैं।

string.Join("\n", errorMessages); 
+1

धन्यवाद, कि मैं वास्तव में क्या चाहते थे है। 'System.Environment.NewLine' के लिए – Justin

32

उपयोग

string.Join(System.Environment.NewLine, errorMessages); 
+4

+1। –

3

में शामिल होने के सबसे छोटा रास्ता या तो .Aggregate(...) या String.Join(...) उपयोग करने के लिए है।

var messages = errorMessages.Aggregate((x, y) => x + Environment.NewLine + y); 

या

var messages = String.Join(Environment.NewLine, errorMessages); 
6
using System; 

string.Join(Environment.NewLine, errorMessages);