C# 将字符串列表组件连接为逗号分隔的字符串

C# 将字符串列表组件连接为逗号分隔的字符串,c#,C#,我有一个字符串列表(list)。我想连接列表项并形成一个新的逗号分隔字符串。我在C#认识。请为我提供最好的解决方案。以防您需要创建CSV(逗号分隔值)字符串 string[] myList = ... string concatenated = string.Join("," myList); 列表源=新列表(){ “abc”//只是一个字符串 “d,e”,//包含逗号的字符串 “x\”yz“,//包含引号的字符串 }; 字符串结果=String.Join(“,”,源 .选择(x=>x.Con

我有一个字符串列表(
list
)。我想连接列表项并形成一个新的逗号分隔字符串。我在C#认识。请为我提供最好的解决方案。

以防您需要创建CSV(逗号分隔值)字符串

string[] myList = ...
string concatenated = string.Join("," myList);
列表源=新列表(){
“abc”//只是一个字符串
“d,e”,//包含逗号的字符串
“x\”yz“,//包含引号的字符串
};
字符串结果=String.Join(“,”,源
.选择(x=>x.Contains(',')| | x.Contains('“)
?“\”+String.Concat(x.Select(c=>c==”?“\”:c.ToString())+“\”
:x));
...
//abc、d、e、x、yz
控制台。写入(结果);

注:添加了引号

它是
Join
,而不是
Join
  List<String> source = new List<String>() {
    "abc",   // just a string
    "d,e",   // string which contains comma
    "x\"yz", // string which contains quotation
  };

  String result = String.Join(",", source
    .Select(x => x.Contains(',') || x.Contains('"')
      ? "\"" + String.Concat(x.Select(c => c == '"' ? "\"\"" : c.ToString())) + "\""
      : x));

  ...

  // abc,"d,e","x""yz"
  Console.Write(result);