C# List 分组并通过Dictionary组装数据

本文介绍了一种基于用户姓名首字母对用户列表进行分组并排序的方法,使用C#和LINQ实现,将分组的Key作为返回的键,分组后的列表作为值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以其中一个字段进行分组,并将分组的Key作为返回的键,分组后的列表作为值。代码如下:

	[HttpGet]
    public JsonResult GetAllUerList()
    {
        var userList = UserClient.GetAllUser();
        var ContactsList = new List<CurrentFirstLetterUserViewModel>();

        foreach (var item in userList)
        {
            var temp = new CurrentFirstLetterUserViewModel();
            temp.ID = item.ID;
            temp.ErpID = item.ErpID;
            temp.UserName = item.UserName;
            temp.FullName = item.FullName;
            temp.Email = item.Email;
            temp.DepartName = item.DepartName;
            var FullNameFirst = item.FullName.Substring(0, 1); // 姓
            var FirstLetter = PinYinConverter.GetFirst(FullNameFirst); // 姓对应的首字母
            temp.FirstLetter = FirstLetter;
            ContactsList.Add(temp);
        }

        var dict = ContactsList.OrderBy(s => s.FirstLetter).GroupBy(s => s.FirstLetter).Select(group => {
            var dic = new Dictionary<string, object>();
            dic.Add("firstLetter", group.Key);
            dic.Add("itemList", group.ToList());
            return dic;
        });

        return Json(new { data = dict, success = true }, JsonRequestBehavior.AllowGet);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值