2016-07-15 6 views
2

ich eine Liste von Strings haben ...Reformierte String durch Kommas getrennt werden und formatiert

var strings = new List<String>() { "a", "b", "c" }; 

ich ausgeben möchte, dass sie in einem anderen Format, wie folgt aus:

'a', 'b', 'c'

ich habe versucht:

string.Join("','",strings); 

und

String.Join(",", String.Format("'{0}'",strings) 
+0

Ihr erster Versuch funktionieren sollte. Was war der Fehler/fehlerhafte Ausgabe? –

Antwort

2

Sie soll erster Versuch funktionieren, aber Sie müssen das Gesamtergebnis mit "'" Präfix und Suffix.

oder könnten Sie tun:

var strings = new List<string>() { "a", "b", "c" } 
        .Select(x => string.Format("'{0}'", x)); 

var result = string.Join(",", strings); 

Eine weitere Option ein StringBuilder stattdessen zu verwenden ist,

var strings = new List<string>() { "a", "b", "c" }; 
var builder = new StringBuilder(); 

foreach (var s in strings) 
{ 
    builder.AppendFormat(",'{0}'", s); 
} 

var result = builder.ToString().Trim(","); 

In diesem Fall würde ich die LINQ Ansatz empfehlen es Einfachheit, aber don‘ t ausschließen Sie die StringBuilder, wenn Ihr echtes Problem komplexer ist, da es die Absicht der Formatierung jedes einzelnen Elements sauberer zeigen kann.

Ein hybrider Ansatz, bei dem Sie den Inhalt jedes Elements mit einem StringBuilder formatieren, dann erstellen Sie die kommagetrennte Liste mit LINQ anschließend, könnte gut funktionieren.

2

Sie waren ziemlich nah mit Ihrem zweiten Versuch. Versuchen Sie folgendes:

string.Join(",", strings.Select(s => $"'{s}'")) 
2

Wie sei:

String.Join(",", strings.Select(s => String.Format("'{0}'", s))); 
1

Hier ist mein Versuch :)

var result = "'" + string.Join("','", strings) + "'"; 

oder

var result = string.Format("'{0}'", string.Join("','", strings)); 
0
using System.Linq; 

var result=strings.Select(x=> "'" + x + "'").Aggregate((x, y) => x + "," + y ); 

or 
var result=string.Format("'{0}'", string.Join("','", strings)); 

or 
var result="'" + string.Join("','", strings) + "'"; 
Verwandte Themen