2017-02-18 83 views

回答

5

如果您確信p不是null你可以寫

PaymentId = p.PaymentId ?? ""; 

的情況下PaymentId將空,它會返回一個空字符串

+0

如果p可以爲null,則使用:PaymentId = p?.PaymentId ?? 「」。如果p爲null,則它也會返回「」。 –

+0

@RuardvanElburg在C#6.0的情況下,情況會如此,但是,他確實將問題標記爲C#4.0問題 – Icepickle

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(), 
    // ... 
} 

Dis claimer方法名稱GetValueOrStringEmpty可能不是最合適的。所以我建議你考慮一個更直觀的名字。

1

您可以在C#中使用空合併運算符。

select new 
    { 
     PaymentId = p.PaymentId ?? string.Empty, 
     AgencyId = p.AgencyId ?? string.Empty, 
     ................................ 
     ................................ 
相關問題