不知道是否我的查詢功力太差, 或者真的沒有人願意提供, 我在網路上找了老半天, 就是找不到一個可用的現成程式。那些現成的程式, 如果不是非 C# 語言, 就是欲言又止... 說真的, 這東西一點都不難, 只差要不要把資料打上去而已。
由於我只需要三碼郵遞區號而不是五碼, 所以我以下提供的程式只能查詢三碼郵遞區號。程式如下:
public class Address { public string City { get; set; } public string Dist { get; set; } public string Part { get; set; } public short? Zipcode { get; set; } public static bool TryParseZipCode(Address address, out short? Zip) { Zip = null; ZipMap.InitRepository(); var zip = from map in ZipMap.ZipRepository where map.City == address.City.Trim() && map.Dist == address.Dist.Trim() select map.Zip; Zip = zip.FirstOrDefault(); return (null != Zip); } } public class ZipMap { internal string City { get; set; } internal string Dist { get; set; } internal short Zip { get; set; } internal static List<ZipMap> ZipRepository = null; internal static void InitRepository() { if (null == ZipRepository) ZipRepository = new List<ZipMap> { new ZipMap() { City = "基隆市", Dist = "仁愛區", Zip = 200 }, new ZipMap() { City = "基隆市", Dist = "信義區", Zip = 201 }, new ZipMap() { City = "基隆市", Dist = "中正區", Zip = 202 }, new ZipMap() { City = "基隆市", Dist = "中山區", Zip = 203 }, new ZipMap() { City = "基隆市", Dist = "安樂區", Zip = 204 }, new ZipMap() { City = "基隆市", Dist = "暖暖區", Zip = 205 }, new ZipMap() { City = "基隆市", Dist = "七堵區", Zip = 206 }, new ZipMap() { City = "台北市", Dist = "中正區", Zip = 100 }, new ZipMap() { City = "台北市", Dist = "大同區", Zip = 103 }, new ZipMap() { City = "台北市", Dist = "中山區", Zip = 104 }, new ZipMap() { City = "台北市", Dist = "松山區", Zip = 105 }, new ZipMap() { City = "台北市", Dist = "大安區", Zip = 106 }, new ZipMap() { City = "台北市", Dist = "萬華區", Zip = 108 }, new ZipMap() { City = "台北市", Dist = "信義區", Zip = 110 }, new ZipMap() { City = "台北市", Dist = "士林區", Zip = 111 }, new ZipMap() { City = "台北市", Dist = "北投區", Zip = 112 }, new ZipMap() { City = "台北市", Dist = "內湖區", Zip = 114 }, new ZipMap() { City = "台北市", Dist = "南港區", Zip = 115 }, new ZipMap() { City = "台北市", Dist = "文山區", Zip = 116 }, new ZipMap() { City = "新北市", Dist = "萬里區", Zip = 207 }, new ZipMap() { City = "新北市", Dist = "金山區", Zip = 208 }, new ZipMap() { City = "新北市", Dist = "板橋區", Zip = 220 }, new ZipMap() { City = "新北市", Dist = "汐止區", Zip = 221 }, new ZipMap() { City = "新北市", Dist = "深坑區", Zip = 222 }, new ZipMap() { City = "新北市", Dist = "石碇區", Zip = 223 }, new ZipMap() { City = "新北市", Dist = "瑞芳區", Zip = 224 }, new ZipMap() { City = "新北市", Dist = "平溪區", Zip = 226 }, new ZipMap() { City = "新北市", Dist = "雙溪區", Zip = 227 }, new ZipMap() { City = "新北市", Dist = "貢寮區", Zip = 228 }, new ZipMap() { City = "新北市", Dist = "新店區", Zip = 231 }, new ZipMap() { City = "新北市", Dist = "坪林區", Zip = 232 }, new ZipMap() { City = "新北市", Dist = "烏來區", Zip = 233 }, new ZipMap() { City = "新北市", Dist = "永和區", Zip = 234 }, new ZipMap() { City = "新北市", Dist = "中和區", Zip = 235 }, new ZipMap() { City = "新北市", Dist = "土城區", Zip = 236 }, new ZipMap() { City = "新北市", Dist = "三峽區", Zip = 237 }, new ZipMap() { City = "新北市", Dist = "樹林區", Zip = 238 }, new ZipMap() { City = "新北市", Dist = "鶯歌區", Zip = 239 }, new ZipMap() { City = "新北市", Dist = "三重區", Zip = 241 }, new ZipMap() { City = "新北市", Dist = "新莊區", Zip = 242 }, new ZipMap() { City = "新北市", Dist = "泰山區", Zip = 243 }, new ZipMap() { City = "新北市", Dist = "林口區", Zip = 244 }, new ZipMap() { City = "新北市", Dist = "蘆洲區", Zip = 247 }, new ZipMap() { City = "新北市", Dist = "五股區", Zip = 248 }, new ZipMap() { City = "新北市", Dist = "八里區", Zip = 249 }, new ZipMap() { City = "新北市", Dist = "淡水區", Zip = 251 }, new ZipMap() { City = "新北市", Dist = "三芝區", Zip = 252 }, new ZipMap() { City = "新北市", Dist = "石門區", Zip = 253 }, new ZipMap() { City = "桃園縣", Dist = "中壢市", Zip = 320 }, new ZipMap() { City = "桃園縣", Dist = "平鎮市", Zip = 324 }, new ZipMap() { City = "桃園縣", Dist = "龍潭鄉", Zip = 325 }, new ZipMap() { City = "桃園縣", Dist = "楊梅市", Zip = 326 }, new ZipMap() { City = "桃園縣", Dist = "新屋鄉", Zip = 327 }, new ZipMap() { City = "桃園縣", Dist = "觀音鄉", Zip = 328 }, new ZipMap() { City = "桃園縣", Dist = "桃園市", Zip = 330 }, new ZipMap() { City = "桃園縣", Dist = "龜山鄉", Zip = 333 }, new ZipMap() { City = "桃園縣", Dist = "八德市", Zip = 334 }, new ZipMap() { City = "桃園縣", Dist = "大溪鎮", Zip = 335 }, new ZipMap() { City = "桃園縣", Dist = "復興鄉", Zip = 336 }, new ZipMap() { City = "桃園縣", Dist = "大園鄉", Zip = 337 }, new ZipMap() { City = "桃園縣", Dist = "蘆竹鄉", Zip = 338 }, new ZipMap() { City = "新竹縣", Dist = "竹北市", Zip = 302 }, new ZipMap() { City = "新竹縣", Dist = "湖口鄉", Zip = 303 }, new ZipMap() { City = "新竹縣", Dist = "新豐鄉", Zip = 304 }, new ZipMap() { City = "新竹縣", Dist = "新埔鎮", Zip = 305 }, new ZipMap() { City = "新竹縣", Dist = "關西鎮", Zip = 306 }, new ZipMap() { City = "新竹縣", Dist = "芎林鄉", Zip = 307 }, new ZipMap() { City = "新竹縣", Dist = "寶山鄉", Zip = 308 }, new ZipMap() { City = "新竹縣", Dist = "竹東鎮", Zip = 310 }, new ZipMap() { City = "新竹縣", Dist = "五峰鄉", Zip = 311 }, new ZipMap() { City = "新竹縣", Dist = "橫山鄉", Zip = 312 }, new ZipMap() { City = "新竹縣", Dist = "尖石鄉", Zip = 313 }, new ZipMap() { City = "新竹縣", Dist = "北埔鄉", Zip = 314 }, new ZipMap() { City = "新竹縣", Dist = "峨眉鄉", Zip = 315 }, new ZipMap() { City = "苗栗縣", Dist = "竹南鎮", Zip = 350 }, new ZipMap() { City = "苗栗縣", Dist = "頭份鎮", Zip = 351 }, new ZipMap() { City = "苗栗縣", Dist = "三灣鄉", Zip = 352 }, new ZipMap() { City = "苗栗縣", Dist = "南庄鄉", Zip = 353 }, new ZipMap() { City = "苗栗縣", Dist = "獅潭鄉", Zip = 354 }, new ZipMap() { City = "苗栗縣", Dist = "後龍鎮", Zip = 356 }, new ZipMap() { City = "苗栗縣", Dist = "通霄鎮", Zip = 357 }, new ZipMap() { City = "苗栗縣", Dist = "苑裡鎮", Zip = 358 }, new ZipMap() { City = "苗栗縣", Dist = "苗栗市", Zip = 360 }, new ZipMap() { City = "苗栗縣", Dist = "造橋鄉", Zip = 361 }, new ZipMap() { City = "苗栗縣", Dist = "頭屋鄉", Zip = 362 }, new ZipMap() { City = "苗栗縣", Dist = "公館鄉", Zip = 363 }, new ZipMap() { City = "苗栗縣", Dist = "大湖鄉", Zip = 364 }, new ZipMap() { City = "苗栗縣", Dist = "泰安鄉", Zip = 365 }, new ZipMap() { City = "苗栗縣", Dist = "銅鑼鄉", Zip = 366 }, new ZipMap() { City = "苗栗縣", Dist = "三義鄉", Zip = 367 }, new ZipMap() { City = "苗栗縣", Dist = "西湖鄉", Zip = 368 }, new ZipMap() { City = "苗栗縣", Dist = "卓蘭鎮", Zip = 369 }, new ZipMap() { City = "台中市", Dist = "中區", Zip = 400 }, new ZipMap() { City = "台中市", Dist = "東區", Zip = 401 }, new ZipMap() { City = "台中市", Dist = "南區", Zip = 402 }, new ZipMap() { City = "台中市", Dist = "西區", Zip = 403 }, new ZipMap() { City = "台中市", Dist = "北區", Zip = 404 }, new ZipMap() { City = "台中市", Dist = "北屯區", Zip = 406 }, new ZipMap() { City = "台中市", Dist = "西屯區", Zip = 407 }, new ZipMap() { City = "台中市", Dist = "南屯區", Zip = 408 }, new ZipMap() { City = "台中市", Dist = "太平區", Zip = 411 }, new ZipMap() { City = "台中市", Dist = "大里區", Zip = 412 }, new ZipMap() { City = "台中市", Dist = "霧峰區", Zip = 413 }, new ZipMap() { City = "台中市", Dist = "烏日區", Zip = 414 }, new ZipMap() { City = "台中市", Dist = "豐原區", Zip = 420 }, new ZipMap() { City = "台中市", Dist = "后里區", Zip = 421 }, new ZipMap() { City = "台中市", Dist = "石岡區", Zip = 422 }, new ZipMap() { City = "台中市", Dist = "東勢區", Zip = 423 }, new ZipMap() { City = "台中市", Dist = "和平區", Zip = 424 }, new ZipMap() { City = "台中市", Dist = "新社區", Zip = 426 }, new ZipMap() { City = "台中市", Dist = "潭子區", Zip = 427 }, new ZipMap() { City = "台中市", Dist = "大雅區", Zip = 428 }, new ZipMap() { City = "台中市", Dist = "神岡區", Zip = 429 }, new ZipMap() { City = "台中市", Dist = "大肚區", Zip = 432 }, new ZipMap() { City = "台中市", Dist = "沙鹿區", Zip = 433 }, new ZipMap() { City = "台中市", Dist = "龍井區", Zip = 434 }, new ZipMap() { City = "台中市", Dist = "梧棲區", Zip = 435 }, new ZipMap() { City = "台中市", Dist = "清水區", Zip = 436 }, new ZipMap() { City = "台中市", Dist = "大甲區", Zip = 437 }, new ZipMap() { City = "台中市", Dist = "外埔區", Zip = 438 }, new ZipMap() { City = "台中市", Dist = "大安區", Zip = 439 }, new ZipMap() { City = "彰化縣", Dist = "彰化市", Zip = 500 }, new ZipMap() { City = "彰化縣", Dist = "芬園鄉", Zip = 502 }, new ZipMap() { City = "彰化縣", Dist = "花壇鄉", Zip = 503 }, new ZipMap() { City = "彰化縣", Dist = "秀水鄉", Zip = 504 }, new ZipMap() { City = "彰化縣", Dist = "鹿港鎮", Zip = 505 }, new ZipMap() { City = "彰化縣", Dist = "福興鄉", Zip = 506 }, new ZipMap() { City = "彰化縣", Dist = "線西鄉", Zip = 507 }, new ZipMap() { City = "彰化縣", Dist = "和美鎮", Zip = 508 }, new ZipMap() { City = "彰化縣", Dist = "伸港鄉", Zip = 509 }, new ZipMap() { City = "彰化縣", Dist = "員林鎮", Zip = 510 }, new ZipMap() { City = "彰化縣", Dist = "社頭鄉", Zip = 511 }, new ZipMap() { City = "彰化縣", Dist = "永靖鄉", Zip = 512 }, new ZipMap() { City = "彰化縣", Dist = "埔心鄉", Zip = 513 }, new ZipMap() { City = "彰化縣", Dist = "溪湖鎮", Zip = 514 }, new ZipMap() { City = "彰化縣", Dist = "大村鄉", Zip = 515 }, new ZipMap() { City = "彰化縣", Dist = "埔鹽鄉", Zip = 516 }, new ZipMap() { City = "彰化縣", Dist = "田中鎮", Zip = 520 }, new ZipMap() { City = "彰化縣", Dist = "北斗鎮", Zip = 521 }, new ZipMap() { City = "彰化縣", Dist = "田尾鄉", Zip = 522 }, new ZipMap() { City = "彰化縣", Dist = "埤頭鄉", Zip = 523 }, new ZipMap() { City = "彰化縣", Dist = "溪州鄉", Zip = 524 }, new ZipMap() { City = "彰化縣", Dist = "竹塘鄉", Zip = 525 }, new ZipMap() { City = "彰化縣", Dist = "二林鎮", Zip = 526 }, new ZipMap() { City = "彰化縣", Dist = "大城鄉", Zip = 527 }, new ZipMap() { City = "彰化縣", Dist = "芳苑鄉", Zip = 528 }, new ZipMap() { City = "彰化縣", Dist = "二水鄉", Zip = 530 }, new ZipMap() { City = "南投縣", Dist = "南投市", Zip = 540 }, new ZipMap() { City = "南投縣", Dist = "中寮鄉", Zip = 541 }, new ZipMap() { City = "南投縣", Dist = "草屯鎮", Zip = 542 }, new ZipMap() { City = "南投縣", Dist = "國姓鄉", Zip = 544 }, new ZipMap() { City = "南投縣", Dist = "埔里鎮", Zip = 545 }, new ZipMap() { City = "南投縣", Dist = "仁愛鄉", Zip = 546 }, new ZipMap() { City = "南投縣", Dist = "名間鄉", Zip = 551 }, new ZipMap() { City = "南投縣", Dist = "集集鎮", Zip = 552 }, new ZipMap() { City = "南投縣", Dist = "水里鄉", Zip = 553 }, new ZipMap() { City = "南投縣", Dist = "魚池鄉", Zip = 555 }, new ZipMap() { City = "南投縣", Dist = "信義鄉", Zip = 556 }, new ZipMap() { City = "南投縣", Dist = "竹山鎮", Zip = 557 }, new ZipMap() { City = "南投縣", Dist = "鹿谷鄉", Zip = 558 }, new ZipMap() { City = "雲林縣", Dist = "斗南鎮", Zip = 630 }, new ZipMap() { City = "雲林縣", Dist = "大埤鄉", Zip = 631 }, new ZipMap() { City = "雲林縣", Dist = "虎尾鎮", Zip = 632 }, new ZipMap() { City = "雲林縣", Dist = "土庫鎮", Zip = 633 }, new ZipMap() { City = "雲林縣", Dist = "褒忠鄉", Zip = 634 }, new ZipMap() { City = "雲林縣", Dist = "東勢鄉", Zip = 635 }, new ZipMap() { City = "雲林縣", Dist = "台西鄉", Zip = 636 }, new ZipMap() { City = "雲林縣", Dist = "崙背鄉", Zip = 637 }, new ZipMap() { City = "雲林縣", Dist = "麥寮鄉", Zip = 638 }, new ZipMap() { City = "雲林縣", Dist = "斗六市", Zip = 640 }, new ZipMap() { City = "雲林縣", Dist = "林內鄉", Zip = 643 }, new ZipMap() { City = "雲林縣", Dist = "古坑鄉", Zip = 646 }, new ZipMap() { City = "雲林縣", Dist = "莿桐鄉", Zip = 647 }, new ZipMap() { City = "雲林縣", Dist = "西螺鎮", Zip = 648 }, new ZipMap() { City = "雲林縣", Dist = "二崙鄉", Zip = 649 }, new ZipMap() { City = "雲林縣", Dist = "北港鎮", Zip = 651 }, new ZipMap() { City = "雲林縣", Dist = "水林鄉", Zip = 652 }, new ZipMap() { City = "雲林縣", Dist = "口湖鄉", Zip = 653 }, new ZipMap() { City = "雲林縣", Dist = "四湖鄉", Zip = 654 }, new ZipMap() { City = "雲林縣", Dist = "元長鄉", Zip = 655 }, new ZipMap() { City = "嘉義縣", Dist = "番路鄉", Zip = 602 }, new ZipMap() { City = "嘉義縣", Dist = "梅山鄉", Zip = 603 }, new ZipMap() { City = "嘉義縣", Dist = "竹崎鄉", Zip = 604 }, new ZipMap() { City = "嘉義縣", Dist = "阿里山鄉", Zip = 605 }, new ZipMap() { City = "嘉義縣", Dist = "中埔鄉", Zip = 606 }, new ZipMap() { City = "嘉義縣", Dist = "大埔鄉", Zip = 607 }, new ZipMap() { City = "嘉義縣", Dist = "水上鄉", Zip = 608 }, new ZipMap() { City = "嘉義縣", Dist = "鹿草鄉", Zip = 611 }, new ZipMap() { City = "嘉義縣", Dist = "太保市", Zip = 612 }, new ZipMap() { City = "嘉義縣", Dist = "朴子市", Zip = 613 }, new ZipMap() { City = "嘉義縣", Dist = "東石鄉", Zip = 614 }, new ZipMap() { City = "嘉義縣", Dist = "六腳鄉", Zip = 615 }, new ZipMap() { City = "嘉義縣", Dist = "新港鄉", Zip = 616 }, new ZipMap() { City = "嘉義縣", Dist = "民雄鄉", Zip = 621 }, new ZipMap() { City = "嘉義縣", Dist = "大林鎮", Zip = 622 }, new ZipMap() { City = "嘉義縣", Dist = "溪口鄉", Zip = 623 }, new ZipMap() { City = "嘉義縣", Dist = "義竹鄉", Zip = 624 }, new ZipMap() { City = "嘉義縣", Dist = "布袋鎮", Zip = 625 }, new ZipMap() { City = "台南市", Dist = "中西區", Zip = 700 }, new ZipMap() { City = "台南市", Dist = "東區", Zip = 701 }, new ZipMap() { City = "台南市", Dist = "南區", Zip = 702 }, new ZipMap() { City = "台南市", Dist = "北區", Zip = 704 }, new ZipMap() { City = "台南市", Dist = "安平區", Zip = 708 }, new ZipMap() { City = "台南市", Dist = "安南區", Zip = 709 }, new ZipMap() { City = "台南市", Dist = "永康區", Zip = 710 }, new ZipMap() { City = "台南市", Dist = "歸仁區", Zip = 711 }, new ZipMap() { City = "台南市", Dist = "新化區", Zip = 712 }, new ZipMap() { City = "台南市", Dist = "左鎮區", Zip = 713 }, new ZipMap() { City = "台南市", Dist = "玉井區", Zip = 714 }, new ZipMap() { City = "台南市", Dist = "楠西區", Zip = 715 }, new ZipMap() { City = "台南市", Dist = "南化區", Zip = 716 }, new ZipMap() { City = "台南市", Dist = "仁德區", Zip = 717 }, new ZipMap() { City = "台南市", Dist = "關廟區", Zip = 718 }, new ZipMap() { City = "台南市", Dist = "龍崎區", Zip = 719 }, new ZipMap() { City = "台南市", Dist = "官田區", Zip = 720 }, new ZipMap() { City = "台南市", Dist = "麻豆區", Zip = 721 }, new ZipMap() { City = "台南市", Dist = "佳里區", Zip = 722 }, new ZipMap() { City = "台南市", Dist = "西港區", Zip = 723 }, new ZipMap() { City = "台南市", Dist = "七股區", Zip = 724 }, new ZipMap() { City = "台南市", Dist = "將軍區", Zip = 725 }, new ZipMap() { City = "台南市", Dist = "學甲區", Zip = 726 }, new ZipMap() { City = "台南市", Dist = "北門區", Zip = 727 }, new ZipMap() { City = "台南市", Dist = "新營區", Zip = 730 }, new ZipMap() { City = "台南市", Dist = "後壁區", Zip = 731 }, new ZipMap() { City = "台南市", Dist = "白河區", Zip = 732 }, new ZipMap() { City = "台南市", Dist = "東山區", Zip = 733 }, new ZipMap() { City = "台南市", Dist = "六甲區", Zip = 734 }, new ZipMap() { City = "台南市", Dist = "下營區", Zip = 735 }, new ZipMap() { City = "台南市", Dist = "柳營區", Zip = 736 }, new ZipMap() { City = "台南市", Dist = "鹽水區", Zip = 737 }, new ZipMap() { City = "台南市", Dist = "善化區", Zip = 741 }, new ZipMap() { City = "台南市", Dist = "大內區", Zip = 742 }, new ZipMap() { City = "台南市", Dist = "山上區", Zip = 743 }, new ZipMap() { City = "台南市", Dist = "新市區", Zip = 744 }, new ZipMap() { City = "台南市", Dist = "安定區", Zip = 745 }, new ZipMap() { City = "高雄市", Dist = "新興區", Zip = 800 }, new ZipMap() { City = "高雄市", Dist = "前金區", Zip = 801 }, new ZipMap() { City = "高雄市", Dist = "苓雅區", Zip = 802 }, new ZipMap() { City = "高雄市", Dist = "鹽埕區", Zip = 803 }, new ZipMap() { City = "高雄市", Dist = "鼓山區", Zip = 804 }, new ZipMap() { City = "高雄市", Dist = "旗津區", Zip = 805 }, new ZipMap() { City = "高雄市", Dist = "前鎮區", Zip = 806 }, new ZipMap() { City = "高雄市", Dist = "三民區", Zip = 807 }, new ZipMap() { City = "高雄市", Dist = "楠梓區", Zip = 811 }, new ZipMap() { City = "高雄市", Dist = "小港區", Zip = 812 }, new ZipMap() { City = "高雄市", Dist = "左營區", Zip = 813 }, new ZipMap() { City = "高雄市", Dist = "仁武區", Zip = 814 }, new ZipMap() { City = "高雄市", Dist = "大社區", Zip = 815 }, new ZipMap() { City = "高雄市", Dist = "岡山區", Zip = 820 }, new ZipMap() { City = "高雄市", Dist = "路竹區", Zip = 821 }, new ZipMap() { City = "高雄市", Dist = "阿蓮區", Zip = 822 }, new ZipMap() { City = "高雄市", Dist = "田寮區", Zip = 823 }, new ZipMap() { City = "高雄市", Dist = "燕巢區", Zip = 824 }, new ZipMap() { City = "高雄市", Dist = "橋頭區", Zip = 825 }, new ZipMap() { City = "高雄市", Dist = "梓官區", Zip = 826 }, new ZipMap() { City = "高雄市", Dist = "彌陀區", Zip = 827 }, new ZipMap() { City = "高雄市", Dist = "永安區", Zip = 828 }, new ZipMap() { City = "高雄市", Dist = "湖內區", Zip = 829 }, new ZipMap() { City = "高雄市", Dist = "鳳山區", Zip = 830 }, new ZipMap() { City = "高雄市", Dist = "大寮區", Zip = 831 }, new ZipMap() { City = "高雄市", Dist = "林園區", Zip = 832 }, new ZipMap() { City = "高雄市", Dist = "鳥松區", Zip = 833 }, new ZipMap() { City = "高雄市", Dist = "大樹區", Zip = 840 }, new ZipMap() { City = "高雄市", Dist = "旗山區", Zip = 842 }, new ZipMap() { City = "高雄市", Dist = "美濃區", Zip = 843 }, new ZipMap() { City = "高雄市", Dist = "六龜區", Zip = 844 }, new ZipMap() { City = "高雄市", Dist = "內門區", Zip = 845 }, new ZipMap() { City = "高雄市", Dist = "杉林區", Zip = 846 }, new ZipMap() { City = "高雄市", Dist = "甲仙區", Zip = 847 }, new ZipMap() { City = "高雄市", Dist = "桃源區", Zip = 848 }, new ZipMap() { City = "高雄市", Dist = "那瑪夏區", Zip = 849 }, new ZipMap() { City = "高雄市", Dist = "茂林區", Zip = 851 }, new ZipMap() { City = "高雄市", Dist = "茄萣區", Zip = 852 }, new ZipMap() { City = "屏東縣", Dist = "屏東市", Zip = 900 }, new ZipMap() { City = "屏東縣", Dist = "三地門鄉", Zip = 901 }, new ZipMap() { City = "屏東縣", Dist = "霧台鄉", Zip = 902 }, new ZipMap() { City = "屏東縣", Dist = "瑪家鄉", Zip = 903 }, new ZipMap() { City = "屏東縣", Dist = "九如鄉", Zip = 904 }, new ZipMap() { City = "屏東縣", Dist = "里港鄉", Zip = 905 }, new ZipMap() { City = "屏東縣", Dist = "高樹鄉", Zip = 906 }, new ZipMap() { City = "屏東縣", Dist = "鹽埔鄉", Zip = 907 }, new ZipMap() { City = "屏東縣", Dist = "長治鄉", Zip = 908 }, new ZipMap() { City = "屏東縣", Dist = "麟洛鄉", Zip = 909 }, new ZipMap() { City = "屏東縣", Dist = "竹田鄉", Zip = 911 }, new ZipMap() { City = "屏東縣", Dist = "內埔鄉", Zip = 912 }, new ZipMap() { City = "屏東縣", Dist = "萬丹鄉", Zip = 913 }, new ZipMap() { City = "屏東縣", Dist = "潮州鎮", Zip = 920 }, new ZipMap() { City = "屏東縣", Dist = "泰武鄉", Zip = 921 }, new ZipMap() { City = "屏東縣", Dist = "來義鄉", Zip = 922 }, new ZipMap() { City = "屏東縣", Dist = "萬巒鄉", Zip = 923 }, new ZipMap() { City = "屏東縣", Dist = "崁頂鄉", Zip = 924 }, new ZipMap() { City = "屏東縣", Dist = "新埤鄉", Zip = 925 }, new ZipMap() { City = "屏東縣", Dist = "南州鄉", Zip = 926 }, new ZipMap() { City = "屏東縣", Dist = "林邊鄉", Zip = 927 }, new ZipMap() { City = "屏東縣", Dist = "東港鎮", Zip = 928 }, new ZipMap() { City = "屏東縣", Dist = "琉球鄉", Zip = 929 }, new ZipMap() { City = "屏東縣", Dist = "佳冬鄉", Zip = 931 }, new ZipMap() { City = "屏東縣", Dist = "新園鄉", Zip = 932 }, new ZipMap() { City = "屏東縣", Dist = "枋寮鄉", Zip = 940 }, new ZipMap() { City = "屏東縣", Dist = "枋山鄉", Zip = 941 }, new ZipMap() { City = "屏東縣", Dist = "春日鄉", Zip = 942 }, new ZipMap() { City = "屏東縣", Dist = "獅子鄉", Zip = 943 }, new ZipMap() { City = "屏東縣", Dist = "車城鄉", Zip = 944 }, new ZipMap() { City = "屏東縣", Dist = "牡丹鄉", Zip = 945 }, new ZipMap() { City = "屏東縣", Dist = "恆春鎮", Zip = 946 }, new ZipMap() { City = "屏東縣", Dist = "滿州鄉", Zip = 947 }, new ZipMap() { City = "台東縣", Dist = "台東市", Zip = 950 }, new ZipMap() { City = "台東縣", Dist = "綠島鄉", Zip = 951 }, new ZipMap() { City = "台東縣", Dist = "蘭嶼鄉", Zip = 952 }, new ZipMap() { City = "台東縣", Dist = "延平鄉", Zip = 953 }, new ZipMap() { City = "台東縣", Dist = "卑南鄉", Zip = 954 }, new ZipMap() { City = "台東縣", Dist = "鹿野鄉", Zip = 955 }, new ZipMap() { City = "台東縣", Dist = "關山鎮", Zip = 956 }, new ZipMap() { City = "台東縣", Dist = "海端鄉", Zip = 957 }, new ZipMap() { City = "台東縣", Dist = "池上鄉", Zip = 958 }, new ZipMap() { City = "台東縣", Dist = "東河鄉", Zip = 959 }, new ZipMap() { City = "台東縣", Dist = "成功鎮", Zip = 961 }, new ZipMap() { City = "台東縣", Dist = "長濱鄉", Zip = 962 }, new ZipMap() { City = "台東縣", Dist = "太麻里鄉", Zip = 963 }, new ZipMap() { City = "台東縣", Dist = "金峰鄉", Zip = 964 }, new ZipMap() { City = "台東縣", Dist = "大武鄉", Zip = 965 }, new ZipMap() { City = "台東縣", Dist = "達仁鄉", Zip = 966 }, new ZipMap() { City = "花蓮縣", Dist = "花蓮市", Zip = 970 }, new ZipMap() { City = "花蓮縣", Dist = "新城鄉", Zip = 971 }, new ZipMap() { City = "花蓮縣", Dist = "秀林鄉", Zip = 972 }, new ZipMap() { City = "花蓮縣", Dist = "吉安鄉", Zip = 973 }, new ZipMap() { City = "花蓮縣", Dist = "壽豐鄉", Zip = 974 }, new ZipMap() { City = "花蓮縣", Dist = "鳳林鎮", Zip = 975 }, new ZipMap() { City = "花蓮縣", Dist = "光復鄉", Zip = 976 }, new ZipMap() { City = "花蓮縣", Dist = "豐濱鄉", Zip = 977 }, new ZipMap() { City = "花蓮縣", Dist = "瑞穗鄉", Zip = 978 }, new ZipMap() { City = "花蓮縣", Dist = "萬榮鄉", Zip = 979 }, new ZipMap() { City = "花蓮縣", Dist = "玉里鎮", Zip = 981 }, new ZipMap() { City = "花蓮縣", Dist = "卓溪鄉", Zip = 982 }, new ZipMap() { City = "花蓮縣", Dist = "富里鄉", Zip = 983 }, new ZipMap() { City = "新竹市", Dist = "", Zip = 300 }, new ZipMap() { City = "新竹市", Dist = "東區", Zip =300 }, new ZipMap() { City = "新竹市", Dist = "北區", Zip =300 }, new ZipMap() { City = "新竹市", Dist = "香山區", Zip =300 }, new ZipMap() { City = "嘉義市", Dist = "", Zip = 600 }, new ZipMap() { City = "嘉義市", Dist = "東區", Zip = 600 }, new ZipMap() { City = "嘉義市", Dist = "西區", Zip = 600 } }; } }
前面說過了, 這個程式最大的 effort 只是把字打上去而言, 在技術上沒有任何特殊之處, 所以我就不在細節上做講解了。
至於使用方式, 我可以簡單的解說一下。程式中總共有兩個類別: Address 與 ZipMap。其中 ZipMap 是一個非公開的類別, 平常用不到; 而 Address 則是公開的類別, 也是主要的類別。我們可以再幫 Address 類別加上其它的功能, 不過那與本文無涉, 所以我就通通省略了。
那麼要如何取出地址中的三碼郵遞區號呢?
首先, 以上的程式邏輯中, 一個正確的地址應該包括以下欄位:
- 「郵遞區號」(即 Zipcode 欄位)
- 「縣/市」(即 City 欄位」
- 「鄉/鎮/市/區」(即 Dist 欄位)
- 「村/街/道/巷/弄/號/樓/室」(即 Part 欄位)
若依我國的地址設定原則, 上述四個欄位應該通通都有 (唯一的例外是郵政信箱; 在這裡我們不討論)。問題是, 在實務上, 有時輸入人員或客戶自己疏忽或者偷懶, 經常少寫了一些欄位。最常見者, 就是省寫了第一欄位: 郵遞區號, 與第三欄位: 鄉鎮市區。
如果使用者少寫了第三個欄位, 那麼上述程式就無用武之處了。因為三碼郵遞區號必須根據第二欄和第三欄的組合, 才有辦法對應。
但是如果使用者只是少寫了第一欄位, 那麼我們就可以拿上述程式把第一欄位重新產生出來。以下是使用範例:
Address a = new Address() { City = "台北市", Dist = "大安區" }; short? zip; if (Address.TryParseZipCode(a, out zip)) a.Zipcode = zip;
如此, 就可以很快地找出三碼郵遞區號了!
我同時也把這個程式寫成了 Gist。有需要的朋友可前往下載。
沒有留言:
張貼留言