有没有更好的方法来写下面的内容?
select new
{
PaymentId = String.IsNullOrEmpty(p.PaymentId) ? "" : p.PaymentId,
AgencyId = String.IsNullOrEmpty(p.AgencyId) ? "" : p.AgencyId,
...............
................
答案 0 :(得分:5)
如果你确定p不是null
,你可以写
PaymentId = p.PaymentId ?? "";
如果PaymentId为null,则返回空字符串
答案 1 :(得分:2)
您可以创建一个扩展方法:
public static class StringExtensions
{
public static GetValueOrStringEmpty(this string input)
{
return string.IsNullOrEmpty(input)
? string.Empty
: input;
}
}
然后你可以重构你的代码,如下所示:
select new
{
PaymentId = p.PaymentId.GetValueOrStringEmpty()
AgencyId = p.AgencyId.GetValueOrStringEmpty(),
// ...
}
免责声明方法GetValueOrStringEmpty
的名称可能不是最合适的。所以我建议你考虑一个更直观的名字。
答案 2 :(得分:2)
您也可以像这样使用它 -
select new
{
PaymentId = p?.PaymentId ?? string.Empty,
AgencyId = p?.AgencyId ?? string.Empty,
参考文献:
答案 3 :(得分:1)
您可以在C#中使用null-coalescing运算符。
select new
{
PaymentId = p.PaymentId ?? string.Empty,
AgencyId = p.AgencyId ?? string.Empty,
................................
................................