2016-07-15 84 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

你的第二次嘗試非常接近。試試這個:

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) + "'";