Ejemplo n.º 1
0
        /// <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; }
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }