在Linq中按包含排序

本文关键字:包含 排序 Linq | 更新日期: 2023-09-27 18:01:02

我有一个名为角色的列表。使用这个列表,我得到了另一个名为菜单的列表,其中在名为RoleType的实体字段中,我也将d.RoleID插入其中。

如何通过调用菜单的第二个列表中的RoleType=d.RoleID来订购第二个名单?

我试过.Distinct().ToList().OrderBy(RoleType),但它不起作用。

var roles = (from d in db.TB_UserRoles
              where d.UserID == userID
              select d.RoleID).ToList();

var menu = (from d in db.TB_MenuRoles
            where roles.Contains(d.RoleID)
            select new Menu
            {
             MenuName = d.TB_Menu.Name,
             RoleType = d.RoleID
            }).Distinct().ToList();

在Linq中按包含排序

OrderBy(RoleType)不是有效的linq语法,它应该是

OrderBy(x => x.RoleType)

尝试此查询

var roles = (from d in db.TB_UserRoles
              where d.UserID == userID
              select d.RoleID).ToList();

var menu = (from d in db.TB_MenuRoles
            where roles.Contains(d.RoleID)
            select new Menu
            {
             MenuName = d.TB_Menu.Name,
             RoleType = d.RoleID
            }).Distinct().OrderBy(x=>x.RoleType).ToList();