/// <summary> /// 查找市、县代码表 /// </summary> /// <param name="lstTmp">所有行政列表</param> /// <param name="code">当前行政代码</param> static void Init(List<AdministrativeCode> lstTmp, AdministrativeCode code) { if (code == null) { return; } var id = code.ID.ToString().Substring(0, (code.Level + 1) * 2); code.SubAdministrativeCode = new List<AdministrativeCode>(); var lst = new List<AdministrativeCode>(); switch (code.Level + 1) { // 查找市级规则 // 前2位省代码 + 后4位**00(固定) case 1: { lst = lstTmp.FindAll(o => o.ID.ToString().StartsWith(id) && !o.ID.ToString().EndsWith("0000") && o.ID.ToString().EndsWith("00")); break; } // 查找县级规则 // 前4位市代码 + 后2位00(固定) case 2: { lst = lstTmp.FindAll(o => o.ID.ToString().StartsWith(id) && !o.ID.ToString().EndsWith("00")); break; } } lst.ForEach(o => { code.SubAdministrativeCode.Add(o); o.Level = code.Level + 1; Init(lstTmp, o); }); if (code.SubAdministrativeCode.Count == 0) { code.SubAdministrativeCode = null; } }
/// <summary> /// 查找市、县代码表 /// </summary> /// <param name="lstTmp">所有行政列表</param> /// <param name="code">当前行政代码</param> static void Init(List <AdministrativeCode> lstTmp, AdministrativeCode code) { if (code == null) { return; } var id = code.ID.ToString().Substring(0, (code.Level + 1) * 2); code.SubAdministrativeCode = new List <AdministrativeCode>(); var lst = new List <AdministrativeCode>(); switch (code.Level + 1) { // 查找市级规则 // 前2位省代码 + 后4位**00(固定) case 1: { lst = lstTmp.FindAll(o => o.ID.ToString().StartsWith(id) && !o.ID.ToString().EndsWith("0000") && o.ID.ToString().EndsWith("00")); break; } // 查找县级规则 // 前4位市代码 + 后2位00(固定) case 2: { lst = lstTmp.FindAll(o => o.ID.ToString().StartsWith(id) && !o.ID.ToString().EndsWith("00")); break; } } lst.ForEach(o => { code.SubAdministrativeCode.Add(o); o.Level = code.Level + 1; Init(lstTmp, o); }); if (code.SubAdministrativeCode.Count == 0) { code.SubAdministrativeCode = null; } }