[英]c# join string comma delimited, but double quote all values inside
我有一個字符串列表
new List<string> { "One", "Two", "Three", "Four", "Five", "Six" }
我想要一個包含完整內容的字符串(包括雙引號)
"One", "Two", "Three", "Four", "Five", "Six"
因為會寫一個文本文件,它將是一個數組[] = {my_string}
我試過這個沒有成功
var joinedNames = fields.Aggregate((a, b) => "\"" + a + ", " + b + "\"");
小LINQ幫助將非常感謝:)
var joinedNames = "\"" + string.Join("\", \"", fields) + "\"";
您可以使用Linq和string.Join
輕松string.Join
var joinedNames = string.Join(", ", fields.Select(f => "\"" + f + "\""));
使用string.Join
:
var myList = new List<string> { "One", "Two", "Three", "Four", "Five", "Six" };
var joined = string.Join(", ", myList.Select(item => "\"" + item + "\""));
var list = new List<string> { "One", "Two", "Three", "Four", "Five", "Six" };
joinedNames = "\"" + string.Join("\", \"", list) + "\"";
List<string>
只是IEnumerable接口的一個實現,int本身就是它的包裝並繼承了string[]
的方法, string[]
中有一個string.join(...)
方法,這是你真正想要的做。
我使用您的原始數據運行測試,但是我在集合中添加了null 。 所有4個版本的數據(列表,數組和每個IEnumerable)都按預期執行了連接方法,最終得到了完全相同的字符串。
List<string> list = new List<string> { "One", "Two", "Three", null, "Four", "Five", "Six" };
string JoinedList = "\"" + string.Join("\", \"", list) + "\"";
string[] array = new string[] { "One", "Two", "Three", null, "Four", "Five", "Six" };
string JoinedArray = "\"" + string.Join("\", \"", array) + "\"";
IEnumerable<string> ieList = new List<string> { "One", "Two", "Three", null, "Four", "Five", "Six" };
string ieListString = "\"" + string.Join("\", \"", ieList) + "\"";
IEnumerable<string> ieArray = new string[] { "One", "Two", "Three", null, "Four", "Five", "Six" };
string ieArrayString = "\"" + string.Join("\", \"", ieArray) + "\"";
Console.WriteLine("Joined List : " + JoinedList);
Console.WriteLine("Joined Array : " + JoinedArray);
Console.WriteLine("Joined ieList : " + ieListString);
Console.WriteLine("Joined ieArray : " + ieArrayString);
// results in
// Joined List : "One", "Two", "Three", "", "Four", "Five", "Six"
// Joined Array : "One", "Two", "Three", "", "Four", "Five", "Six"
// Joined ieList : "One", "Two", "Three", "", "Four", "Five", "Six"
// Joined ieArray : "One", "Two", "Three", "", "Four", "Five", "Six"
在您提供的上下文中,任何數據對象都沒有優勢也沒有缺點。 如果我們正在尋找性能(無論多么微不足道),我們希望保持字符串[],但如果我們需要最大功能,我們需要使用List。 IEnumerable確實有一些添加的方法(例如Order)但沒有Remove
函數(為了捕獲我插入的空值)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.