2016-07-15 9 views
2

をフォーマットする...再フォーマット文字列カンマ区切りと私は文字列のリストを持っている

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

私はこのように、異なるフォーマットで出力し、それらをしたい:

「A」、 'B'、 'C​​' 私が試した

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

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

あなたの最初の試みは動作するはずです。エラー/不良出力は何ですか? –

答えて

2

あなたの最初の試みは動作するはずですが、あなたは"'"で全体的な結果を接頭辞と接尾辞にする必要があります。あなたは

かを、行うことができます:

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

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

別のオプションではなく、StringBuilderを使用することで、

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(","); 

をこの場合、それはシンプルだが、ドンのために、私はLINQのアプローチをお勧めします実際の問題がより複雑な場合は、個々の項目の書式設定の意図をより明確に示すことができるので、StringBuilderを除外します。

StringBuilderを使用して各項目の内容を書式設定し、後でLINQを使用してコンマ区切りのリストを作成するハイブリッドアプローチはうまくいく可能性があります。ここで

2

あなたは2度目の試みにかなり近かった。これを試してみてください:

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

方法について:

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

は私の試み:)

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

または

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) + "'"; 
関連する問題