C# 中地址格式的条件 <br>
Conditional <br> for address format in C#
我正在格式化我的应用程序以显示与特定工作单相关的地址。地址有时会使用第二行。我不想使用以下内容:
<%: ticket.ADDRESS2 %><br />
在这种情况下,如果对象为 null 或空,我仍然会中断,然后我有一个看起来很有趣的大 space。
我想我可以生成我自己的字符串,然后用这样的东西把它变成一个文字:
string str = ((Object)ticket.ADDRESS2 != "").ToString();
string sAdd2 = str + <br />;
myLiteral.Text = sAdd2;
但如果 Object 为 null 或为空,这实际上对我没有帮助(事实上,我什至不知道它是否有效。
然后我尝试了这个:
public string sAdd2
{
get
{
Object oAdd2 = ticket.ADDRESS2;
if (oAdd2 != null)
{
string sAdd2 = ((Object)ticket.ADDRESS2 != "").ToString();
}
else
{
string sAdd2 = ((Object)ticket.ADDRESS2 == "").ToString();
}
}
}
有了这个,我在 'get' 处得到错误(并非所有代码路径 return 一个值)。我觉得我正在做一件简单的事情。我只想让我的页面显示
地址行 1
地址行 2
城市、州邮政编码
或
地址行 1
城市、州邮政编码
有人指点一下吗?我查过 "conditional breaks" 但没找到有用的 return.
使用 if 语句
<%if (!string.IsNullOrEmpty(ticket.ADDRESS2)) { %>
<%: ticket.ADDRESS2 %><br />
<%} %>
我过去所做的——在 MVC 项目中,但很容易在 WebForms 的代码中——是:
var lines = new [] {
contact.Name,
contact.AddressLine1,
contact.AddressLine2,
contact.AddressLine3,
contact.PostCode
};
var address = String.Join("<br/>", lines.Where(l => !String.IsNullOrWhitespace(l));
然后使用适当的方法将 address
作为原始字符串写出。
删除空行,然后使用string.Join()添加换行符。
// Get the address lines to be displayed
string[] lines = new string[]
{
ticket.Address1,
ticket.Address2,
ticket.Address3,
ticket.Address4,
ticket.ZipCode,
};
// Remove blank lines
IEnumerable<string> filledLines = lines.Where(s => !string.IsNullOrWhitespace(s));
// Add newlines between each line
string html = string.Join(@"<br />", filledLines);
我正在格式化我的应用程序以显示与特定工作单相关的地址。地址有时会使用第二行。我不想使用以下内容:
<%: ticket.ADDRESS2 %><br />
在这种情况下,如果对象为 null 或空,我仍然会中断,然后我有一个看起来很有趣的大 space。
我想我可以生成我自己的字符串,然后用这样的东西把它变成一个文字:
string str = ((Object)ticket.ADDRESS2 != "").ToString();
string sAdd2 = str + <br />;
myLiteral.Text = sAdd2;
但如果 Object 为 null 或为空,这实际上对我没有帮助(事实上,我什至不知道它是否有效。
然后我尝试了这个:
public string sAdd2
{
get
{
Object oAdd2 = ticket.ADDRESS2;
if (oAdd2 != null)
{
string sAdd2 = ((Object)ticket.ADDRESS2 != "").ToString();
}
else
{
string sAdd2 = ((Object)ticket.ADDRESS2 == "").ToString();
}
}
}
有了这个,我在 'get' 处得到错误(并非所有代码路径 return 一个值)。我觉得我正在做一件简单的事情。我只想让我的页面显示
地址行 1
地址行 2
城市、州邮政编码
或
地址行 1
城市、州邮政编码
有人指点一下吗?我查过 "conditional breaks" 但没找到有用的 return.
使用 if 语句
<%if (!string.IsNullOrEmpty(ticket.ADDRESS2)) { %>
<%: ticket.ADDRESS2 %><br />
<%} %>
我过去所做的——在 MVC 项目中,但很容易在 WebForms 的代码中——是:
var lines = new [] {
contact.Name,
contact.AddressLine1,
contact.AddressLine2,
contact.AddressLine3,
contact.PostCode
};
var address = String.Join("<br/>", lines.Where(l => !String.IsNullOrWhitespace(l));
然后使用适当的方法将 address
作为原始字符串写出。
删除空行,然后使用string.Join()添加换行符。
// Get the address lines to be displayed
string[] lines = new string[]
{
ticket.Address1,
ticket.Address2,
ticket.Address3,
ticket.Address4,
ticket.ZipCode,
};
// Remove blank lines
IEnumerable<string> filledLines = lines.Where(s => !string.IsNullOrWhitespace(s));
// Add newlines between each line
string html = string.Join(@"<br />", filledLines);