C# 将对象/字符串列表转换为以逗号分隔的子字符串

C# 将对象/字符串列表转换为以逗号分隔的子字符串,c#,.net,C#,.net,请帮助将从DB获取的对象列表转换为用逗号分隔的子字符串 以下面的示例代码为例: List<string> CategoryNames = new List<string>(); CategoryNames.Add("myName1"); CategoryNames.Add("myName2"); CategoryNames.Add("myName3"); 如何将类别名称转换为如上所示的子字符串? 任何帮助都将不胜感激。您可以使用与LINQ结合的方法在加入之前保留报价:

请帮助将从DB获取的对象列表转换为用逗号分隔的子字符串

以下面的示例代码为例:

List<string> CategoryNames = new List<string>();
CategoryNames.Add("myName1");
CategoryNames.Add("myName2");
CategoryNames.Add("myName3");
如何将
类别名称
转换为如上所示的子字符串? 任何帮助都将不胜感激。

您可以使用与LINQ结合的方法在加入之前保留报价:

var result = String.Join(",", CategoryNames.Select(item => $"\"{item}\""));
如果不链接singleliner,下面是更清晰的代码版本:

var QuotedCategroyNames = CategoryNames
    .Select(item => $"\"{item}\"");

var result = String.Join(",", QuotedCategroyNames);
您可以通过结合LINQ使用方法来在加入之前保留引号:

var result = String.Join(",", CategoryNames.Select(item => $"\"{item}\""));
如果不链接singleliner,下面是更清晰的代码版本:

var QuotedCategroyNames = CategoryNames
    .Select(item => $"\"{item}\"");

var result = String.Join(",", QuotedCategroyNames);

使用LINQ
Select
将所有名称括在引号中,然后使用
string.Join
合并回逗号分隔的字符串

string.Join(',', CategoryNames.Select(n => '"' + n + '"'));

使用LINQ
Select
将所有名称括在引号中,然后使用
string.Join
合并回逗号分隔的字符串

string.Join(',', CategoryNames.Select(n => '"' + n + '"'));
可以将和concat与双引号字符一起使用:

var serialized = $@"""{ string.Join(@""",""", CategoryNames) }"""; // "myName1","myName2","myName3"

您可以使用双引号字符和concat:

var serialized = $@"""{ string.Join(@""",""", CategoryNames) }"""; // "myName1","myName2","myName3"

你的意思是
“myName1,myName2,myName3”
?请仔细检查:你真的希望结果也包含这样的引号:“myName1”,“myName2”,“myName3”还是只想得到这样的结果?:“myName1,myName2,myName3”
字符串。Join
似乎是一个答案。。。。但请澄清要求,我希望格式中包含诸如“``` myName1”、“myName2”、“myName3”`` string.Join(“,”CategoryNames)”之类的引号;只会给我这样的格式“myName1,myName2,myName3”你的意思是
“myName1,myName2,myName3”
?请仔细检查:你真的希望结果也包含这样的引号:“myName1”,“myName2”,“myName3”还是只想得到这样的结果?:“myName1,myName2,myName3”
string.Join
似乎是一个答案。。。。但请澄清要求,我希望格式中包含诸如“``` myName1”、“myName2”、“myName3”`` string.Join(“,”CategoryNames)”之类的引号;只会给我一个像“myName1,myName2,myName3”这样的格式,但输出是这样的
\“myName1\”,“myName2\”,“myName3\”
它应该是这样的,如果你从IDE看,它会这样显示(因为它转义了引号字符)。但是你可以做Console.WriteLine(结果);或者将结果放入UI中,您将看到所需的结果。正在工作,但输出是这样的
\“myName1\”,“myName2\”,“myName3\”
如果您从IDE查看,它将以这种方式显示(因为它转义了那里的引号字符)。但是你可以做Console.WriteLine(结果);或者将结果放在UI中,您将看到所需的结果。