我需要在地址上预约。地址由几个变量构成。当然我还需要一些换行。但是当我在outlook中打开约会时,“\ n”不会产生新行。
好的,这里是代码片段:
string address = name + "\n" + strasse + "\n" + plz.ToString() + " " + ort;
if ( telefon != "") {
address = address + "\nTelefon:: " + telefon;
}
if ( natel != "") {
address = address + "\nNatel: " + natel;
}
if ( mail != "") {
address = address + "\nE-Mail: " +mail;
}
没什么特别的。问题是当我把这个写到约会的主体时,没有任何实际的换行符。
答案 0 :(得分:5)
如果没有看到至少一个你传递的字符串的例子,很难诊断它,但我倾向于在我的C#代码中做的一件事就是使用常量:
Environment.NewLine
或者我使用StringBuilder类和AppendLine()调用来添加换行符。
编辑:根据你的代码片段,我会用这种方式编写它(它也会更高效)。使用您的代码段,正在分配许多字符串(因为字符串是不可变的)。在这种情况下,推荐的方法是使用StringBuilder。
StringBuilder address = new StringBuilder();
address.AppendLine(name);
address.AppendLine(strasse);
address.Append(plz.ToString()); // This may not be neccessary depending on the type of plz, StringBuilder has overloads that will convert base types to string for you
address.Append(" ");
address.Append(ort);
if (!string.IsNullOrEmpty(telefon))
{
address.AppendLine();
address.Append("Telefon:: ");
address.Append(telefon);
}
if (!string.IsNullOfEmpty(natel))
{
address.AppendLine();
address.Append("Natel: ");
address.Append(natel);
}
if (!string.IsNullOrEmpty(mail))
{
address.AppendLine();
address.Append("E-Mail: ");
address.Append(mail);
}
return address.ToString();
注意:如果您使用的是.Net 4.0,则可以使用string.IsNullOrWhitespace而不是IsNullOrEmpty来检查不仅仅是一个空字符串,而是一个只包含空格的字符串。
编辑2 - 根据您的需要答案< br />标签而不是换行符。
const string newLine = " <br /> ";
StringBuilder address = new StringBuilder();
address.Append(name);
address.Append(newLine);
address.Append(strasse);
address.Append(newLine);
address.Append(plz.ToString()); // This may not be neccessary depending on the type of plz, StringBuilder has overloads that will convert base types to string for you
address.Append(" ");
address.Append(ort);
if (!string.IsNullOrEmpty(telefon))
{
address.Append(newLine);
address.Append("Telefon:: ");
address.Append(telefon);
}
if (!string.IsNullOfEmpty(natel))
{
address.Append(newLine);
address.Append("Natel: ");
address.Append(natel);
}
if (!string.IsNullOrEmpty(mail))
{
address.Append(newLine);
address.Append("E-Mail: ");
address.Append(mail);
}
return address.ToString();
答案 1 :(得分:1)
好的,我现在明白了。我发现约会以html格式存储。 所以我试图使用html实体\ r \ n,。那不起作用。我终于通过使用br标签解决了这个问题
答案 2 :(得分:0)
你应该尝试“\ r \ n”
答案 3 :(得分:0)
答案 4 :(得分:0)
虽然你对使用&lt; br /&gt;完全正确,但换行并不是Exchange在笔记/约会机构中唯一吃的东西。
我最终得到了以下代码:
Regex NewlineRegex = new Regex("(\r\n)|(\r)|(\n)");
string valueToWrite = NewlineRegex.Replace(
SecurityElement.Escape(fieldValue), "<br/>")
.Replace(" ", " ")
.Replace("'", "'"); // ' is not in HTML.
即使在那之后你会在身体/音符的末尾回读额外的"\r\n"
,所以我必须在阅读后.TrimEnd()
。