在c#

时间:2019-02-21 10:34:36

标签: c# list

我的代码如下:

List<string> colorList = new List<string>();

....

sCombo = reader["Combo"].ToString();
colorList.Add(sCombo.ToString());

....


foreach (var Combo in colorList)
{
   Response.Write(string.Join(",", Combo));
} 

输出:D410D430D440D420而不是D410,D430,D440,D420

List<string>转换为逗号分隔的字符串的最简单方法是什么?

编辑#01

您的建议有效,但是我需要这个新输出:

'D410','D430','D440','D420' 

因为在SQL查询中使用此string

谢谢

3 个答案:

答案 0 :(得分:6)

我认为这将非常方便

var colorList = new List<string>() { "D410", "D430", "D440", "D420" };
string commaSeparated = string.Join(",", colorList);                      
Console.WriteLine(commaSeparated);

或尝试基于Linq的解决方案

Console.WriteLine(colorList.Select(s => s + ",").Aggregate((s, q) => s + q).TrimEnd(','));

输出

D410,D430,D440,D420

修改

string result = string.Join(",", colorList.Select(e => "'" + e + "'"));
Console.WriteLine(result);

会给您

'D410','D430','D440','D420'

答案 1 :(得分:4)

没有ConfigurationManager.AppSettings

foreach

答案 2 :(得分:1)

您需要这样输出=> 'D410','D430','D440','D420'

所以请尝试以下

string result = string.Join(",", colorList.Select(x => $"'{x}'"));
Response.Write(result);

我们在上面做了什么?

答案::首先,用单引号('')括住字符串,将列表中的每个项目弄平,然后将这个新生成的拼合结果传递给带有逗号(,)以获得所需的输出。

输出:(来自调试器)

enter image description here