Newline char在交换约会

Luk*_*uke 2 .net c# exchange-server

我需要把一个地址放到约会中.地址由几个变量构成.当然我还需要一些换行.但是当我在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;
        }
Run Code Online (Sandbox Code Playgroud)

没什么特别的.问题是当我把它写到约会的主体时,那么没有任何实际的换行符.

pst*_*jds 5

如果没有至少看到你传递的字符串的一个例子,很难诊断它,但我倾向于在我的C#代码中做的一件事就是使用常量:

Environment.NewLine
Run Code Online (Sandbox Code Playgroud)

或者我使用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();
Run Code Online (Sandbox Code Playgroud)

注意:如果您使用.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();
Run Code Online (Sandbox Code Playgroud)