zoukankan      html  css  js  c++  java
  • 省市三级联动通过Lymbda表达式转成以Id为主键的Json

    public class B
        {
            public int areasysno { get; set; }
            public string areaname { get; set; }
            public int citysysno { get; set; }
            public string cityname { get; set; }
            public int provincesysno { get; set; }
            public string provincename { get; set; }
    
            public string T()
            {
                List<B> list = new List<B> {
                    new B { areasysno=111,areaname="111a",citysysno=11,cityname="11a",provincesysno=1,provincename="a"},
                    new B { areasysno=112,areaname="112a",citysysno=11,cityname="11a",provincesysno=1,provincename="a"},
                    new B { areasysno=121,areaname="121a",citysysno=12,cityname="12a",provincesysno=1,provincename="a"},
                    new B { areasysno=122,areaname="121a",citysysno=12,cityname="12a",provincesysno=1,provincename="a"},
                    new B { areasysno=211,areaname="211b",citysysno=21,cityname="21b",provincesysno=2,provincename="b"},
                    new B { areasysno=221,areaname="221b",citysysno=22,cityname="22b",provincesysno=2,provincename="b"},
                    new B { areasysno=212,areaname="212b",citysysno=21,cityname="21b",provincesysno=2,provincename="b"},
                };
                var provinces = list.GroupBy(x => x.provincesysno).Select(x => new { provincesysno = x.Key, provincename = list.First(y => y.provincesysno == x.Key)?.provincename });
                var citys = list.GroupBy(x => x.citysysno).Select(x => new { citysysno = x.Key, cityname = list.First(y => y.citysysno == x.Key)?.cityname,provincesysno= list.First(y => y.citysysno == x.Key)?.provincesysno });
    
                var dic = provinces.ToDictionary(x => x.provincesysno, x => new
                {
                    province = provincename,
                    cityList = citys.Where(y => y.provincesysno == x.provincesysno).ToDictionary(z => z.citysysno, z => new
                    {
                        city = z.cityname,
                        regionList = list.Where(a => a.citysysno == z.citysysno).ToDictionary(b => b.areasysno, b => new
                        {
                            area = b.areaname
                        })
                    })
                });
                return JsonConvert.SerializeObject(dic);
            }
        }
  • 相关阅读:
    Base-64 字符数组或字符串的长度无效
    vs2015web项目无法加载64位c++的dll,提示试图加载不正确的格式
    解决json显示日期带T的问题
    light7的picker无法控制选择数值范围的解决办法
    sqlserver中获取本周记录
    js日期格式化,兼容ie
    ASP 缓存处理及URL 重写
    SQL Server2008附加数据库之后显示为只读时解决方法
    SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600
    xamarin 学习
  • 原文地址:https://www.cnblogs.com/holdhappiness/p/6410885.html
Copyright © 2011-2022 走看看