Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Stringbuilder在将其转换为字符串后添加反斜杠_C#_String_Stringbuilder - Fatal编程技术网

C# Stringbuilder在将其转换为字符串后添加反斜杠

C# Stringbuilder在将其转换为字符串后添加反斜杠,c#,string,stringbuilder,C#,String,Stringbuilder,我有一种情况,我想在字符串中添加倒逗号 static void Main(string[] args) { int valueCounter = 0; int valueCount = 0; var valueBuilder = new StringBuilder(); List<string> values = new List<string>(); values.Add("

我有一种情况,我想在字符串中添加倒逗号

static void Main(string[] args)
    {
        int valueCounter = 0;
        int valueCount = 0;
        var valueBuilder = new StringBuilder();
        List<string> values = new List<string>();
        values.Add("AAAA");
        values.Add("BBBB");
        values.Add("CCCC");
        valueCount = values.Count;

        foreach (var value in values)
        {
            valueCounter++;
            if ((valueCounter - 1) > 0)
                valueBuilder.Append("\"");
            valueBuilder.Append(values[valueCounter - 1].ToString());

            if (valueCounter != valueCount)
            {
                valueBuilder.Append(@",");
            }
        }

        string output = valueBuilder.ToString();

    }
static void Main(字符串[]args)
{
int valueCounter=0;
int valueCount=0;
var valueBuilder=新的StringBuilder();
列表值=新列表();
增加(“AAAA”);
增加(“BBBB”);
添加(“CCCC”);
valueCount=值。计数;
foreach(值中的var值)
{
valueCounter++;
如果((valueCounter-1)>0)
valueBuilder.Append(“\”);
Append(值[valueCounter-1].ToString());
如果(valueCounter!=valueCount)
{
valueBuilder。附加(@“,”);
}
}
字符串输出=valueBuilder.ToString();
}

如您所见,在将Stringbuilder转换为字符串后,它会向字符串添加反斜杠

static void Main(string[] args)
    {
        int valueCounter = 0;
        int valueCount = 0;
        var valueBuilder = new StringBuilder();
        List<string> values = new List<string>();
        values.Add("AAAA");
        values.Add("BBBB");
        values.Add("CCCC");
        valueCount = values.Count;

        foreach (var value in values)
        {
            valueCounter++;
            if ((valueCounter - 1) > 0)
                valueBuilder.Append("\"");
            valueBuilder.Append(values[valueCounter - 1].ToString());

            if (valueCounter != valueCount)
            {
                valueBuilder.Append(@",");
            }
        }

        string output = valueBuilder.ToString();

    }

请帮助我了解如何获得所需的结果:“AAAA”、“BBBB”、“CCCC”

只需删除
valueBuilder.Append(“\”)


我的错误。它只是转义
\

必须转义在Java字符串对象中使用引号。您抱怨的
\
仅在您的工具中可见,并且需要转义
,以便不会发生错误。如果要执行
系统.out.println(输出);
您将看不到
\
字符。

我认为
foreach
循环的以下代码将解决您的问题

foreach (var value in values)
    {
        value = "\""+value+"\"";
        valueBuilder.Append(value);

        if (++valueCounter != valueCount)
        {
            valueBuilder.Append(@",");
        }
    }

以下是您的代码的更正版本(修复了第一个片段的封闭性):


反斜杠不是字符串的一部分,它只是您使用的工具显示它的方式。为什么不删除添加“\”字符的行?:valueBuilder.Append(“\”);如果要执行
System.out.println(输出)您将看不到反斜杠。您是否正在调试器中查看此内容?是的,我正在调试器中查看。这不会添加反斜杠。它只是添加了一个双引号。这将导致错误。需要\来转义“”。
    output,nq