我试图将用户输入的字符串添加到StringBuilder中,然后可以在其他地方使用它来显示我正在构建的字符串。问题是,当用户执行回车时,我尝试将其附加到StringBuilder上,它将删除转义字符,并因此删除回车。
例如,假设用户输入以下内容:
Hello, My name is Tom.
当我从文本框控件中提取该字符串并将其传递给保存StringBuilder的方法时,它看起来像这样:
Hello,\r\nMy name is Tom.
但是一旦我将其附加到StringBuilder上,它将删除所有转义字符并变为:
Hello,My name is Tom.
这将导致输出为:
Hello,My name is Tom
代替:
Hello, My name is Tom
这是从ctrl中拉出用户输入的方法
protected List<BetweenTagData> BetweenTagDataPull(string ctrlName)
{
List<BetweenTagData> data = new List<BetweenTagData>();
BetweenTagData pullIt = new BetweenTagData();
if (ctrlName == "Label")
{
pullIt.text = TagLabelTxtbxEnterText.Text.ToString();
data.Add(pullIt);
}
return data;
}
这是使用StringBuilder构建字符串的方法
static public string TagBetween(List<BetweenTagData> betweenData)
{
StringBuilder betweenString = new StringBuilder();
foreach (BetweenTagData row in betweenData.ToList())
{
if (row.text != "")
{
betweenString.Append(row.text);
}
}
return betweenString.ToString();
}
答案 0 :(得分:0)
我不确定您到底是什么问题,但是我可以肯定地告诉您StringBuilder
类型并不关心或更改这些字符。真正的问题更有可能在BetweenTagData
类中出现。我还可以帮助您改善现有方法:
protected List<BetweenTagData> BetweenTagDataPull(string ctrlName)
{
List<BetweenTagData> data = new List<BetweenTagData>();
if (ctrlName == "Label")
{
data.Add(new BetweenTagData() {text = TagLabelTxtbxEnterText.Text});
}
return data;
}
static public string TagBetween(IEnumerable<BetweenTagData> betweenData)
{
return string.Join("", betweenData.Where(bd => !string.IsNullOrEmpty(bd.text)).Select(bd => bd.text));
}