C#加入字符串逗号界定,但双引用所有值

  • 本文关键字:引用 字符串 c#
  • 更新时间 :
  • 英文 :


我有一个字符串列表

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

Little Linq帮助将非常感谢:(

var joinedNames = """ + string.Join("", "", fields) + """;

您可以通过LINQ和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接口的实现,该接口本身是包装器的包装器,并继承了string[]的方法,它在其中具有string.join(...)方法,它实际上就是您实际上想做的。

我使用您的原始数据进行了测试,但是我在集合中添加了 null 。数据的所有4个版本(列表,数组和每个版本的iEnumerable(按预期执行了JOIN方法,最终以完全相同的字符串。

    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"

在您提出的上下文中,任何数据对象既没有优势也不是不利的。如果我们正在寻找性能(但是很小(希望将其保留为字符串[],但是如果我们需要最大的功能,则需要使用列表。iEnumerable确实有一些添加的方法(例如顺序(,但没有Remove函数(要捕获该零值,我插入了(

最新更新