簡體   English   中英

c#join string逗號分隔,但雙引號內的所有值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM