2
我是LINQ新手,致力於涉及國際郵政地址的GIS項目。我的一個設計問題涉及按國家/地區動態地將分解的鍵/值對格式的地址數據轉換爲多行郵政地址格式。每個記錄都需要基礎上,Country
字段值自撰寫,根據按國家和地址線定義了一組規則:LINQ條件級聯查詢
Dictionary<string, string> addressOne = new Dictionary<string,string>() {
{ "StreetName", "Stradă Măguricea" },
{ "HouseNumber", "1" },
{ "ApartmentLabel", "Ap" },
{ "ApartmentNumber", "17" },
{ "PostalCode", "014231" },
{ "City", "BUCUREŞTI" },
{ "Country", "Romania" }
};
Dictionary<string, string> addressTwo = new Dictionary<string,string>() {
{ "StreetName", "PORTAGE" },
{ "StreetSuffix", "AVE" },
{ "HouseNumber", "811" },
{ "City", "WINNIPEG" },
{ "StateProvince", "MB" },
{ "PostalCode", "R3B 2A8" },
{ "Country", "CANADA" }
};
//Example Concatenation Rules (these are approximations)...
//Romania: AddressLine1 = "{StreetName}[ {StreetSuffix}] {HouseNumber}[, {ApartmentLabel} {ApartmentNumber}"
// AddressLine2 = "{PostalCode} {City}"
// AddressLine3 = "{Country}"
//Canada: AddressLine1 = "{HouseNumber} {StreetName}[ {StreetSuffix}]"
// AddressLine2 = "[{ApartmentLabel} {ApartmentNumber}]"
// AddressLine3 = "{City} {StateProvince} {PostalCode}"
// AddressLine4 = "{Country}"
我目前正在規劃一個函數表,通過Country
和AddressLine
來電,與每個Func
返回由適當的連接規則格式化的複合字段。我始終可以用傳統的邏輯來實現這些規則函數,但對於LINQ查詢來說,這似乎已經成熟。
我的大多數搜索與通常的comma aggregation scenarios;這更多的是選擇性的,條件模式匹配問題(我可以聞到正則表達式)。這對於LINQ來說是一個很好的用例,還是我應該堅持老派的字符串操作?
感謝您的閱讀!
是每個國家會擁有自己的地址字段和值的字典?另外,將如何定義每個國家的格式(即地址線)的對象?它是一個字符串列表,每個索引都是地址行的位置?最後,方括號是可選字段嗎?或者,如果它不匹配字典中的任何鍵,它就不存在。回答這些問題應該有助於澄清一些問題。 – 2011-03-30 15:32:46