我有一個Address屬性AddressLine1,AddressLine2,Suburb,State,ZipCode。 (還有更多,但這個例子足夠了)。此外,每個屬性都是字符串。我正在使用C#3.0。將地址對象轉換爲字符串的最佳方式是什麼?
我想它表示爲一個字符串,但我做了我發現,我創建具有高圈複雜度的方法,由於所有的if語句...
假設分配給每個屬性的字符串與屬性的名稱相同(即AddressLine1 =「AddressLine1」)...我希望地址如下所示:
「AddressLine1 AddressLine2 Suburb State ZipCode」。現在
,原有的方式,我做了,這是通過簡單的String.Format()
String.Format("{0} {1} {2} {3} {4}", address.AddressLine1,
address.AddressLine2, address.Suburb, address.State, address.ZipCode);
這是一個好主意,直到我發現了一些這些字段可以是空..特別是AddressLine2。其結果是額外的不必要的空間......當你連續得到幾個時,這些空間特別惱人。
爲了解決這個問題,以及我能想到的唯一解決方案,我必須手動構建字符串,並且只將地址屬性添加到字符串(如果它們不爲null或爲空)。
即
string addressAsString = String.Empty;
if (!String.IsNullOrEmpty(address.AddressLine1))
{
addressAsString += String.Format("{0}", address.AddressLine1);
}
if(!String.IsNullOrEmpty(address.AddressLine2))
{
addressAsString += String.Format(" {0}", address.AddressLine2);
}
etc....
是否有一個更優雅和/或簡明的方式來實現這一目標,我不是在想什麼?我的解決方案只是感覺凌亂和臃腫...但我想不出一個更好的方式來做到這一點...
對於我所知道的,這是我唯一的選擇給予我想要做的..但我只是認爲我會把它放在那裏,看看比我更有經驗的人是否知道更好的方法。如果沒有更好的選擇,那麼哦...但如果有的話,那麼我會去學習一些我以前不知道的東西。
在此先感謝!
,看起來像一個有趣的解決方案...我會嘗試一下,看看它是如何去... – mezoid 2009-03-02 01:27:16
燁... C#3.0是我使用的是什麼.. 。我會更新標籤,以反映... – mezoid 2009-03-02 01:28:00
真棒解決方案格雷格!感謝堆!它將20多行減少到3個易於理解的易於理解的行。我真的需要在Linq開始思考。 – mezoid 2009-03-02 01:45:35