我有一个筛选列表,它返回MenuTable中的所有distinctIds
var _parentList = _employee.Designation.Role.MenuRoles
.Select(x => new
{
MenuParentID = x.Menu.ParentID
})
.DistinctBy(x => x.MenuParentID)
.OrderBy(x => x.MenuParentID)
.ToList();
Run Code Online (Sandbox Code Playgroud)
我想选择所有项目,从menutable
它是_parentList
这是我曾尝试和错误即将在_parentList.Contains(x.Id)
这说Best overloaded match for System.Generic.contains has some invalid arguments.
MenuParentList = _db.Menus.Where(x => _parentList.Contains(x.Id))
.Select(x => new SMS.Models.ViewModel.DashboardVM.MenuParent
{
MenuParentID = x.Id,
MenuParentName = x.MenuName
})
.ToList()
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激
参看 这段代码:
.Select(x => new
{
MenuParentID = x.Menu.ParentID
})
Run Code Online (Sandbox Code Playgroud)
这将生成一个匿名对象列表,其中包含一个名为MenuParentID的属性,而不是整数列表.编译器为您创建一个结构上看起来像这样的类型(注意编译器在幕后生成一个不可用的类名,而不是AnonymousType1
,但你明白了):
class AnonymousType1
{
public int MenuParentID {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
并且_parentList
将是类型List<AnonymousType1>
.
调整代码如下:
var _parentList = _employee.Designation.Role.MenuRoles
.Select(x => x.Menu.ParentID)
.Distinct()
.OrderBy(id => id)
.ToList();
Run Code Online (Sandbox Code Playgroud)
现在_parentList
是类型List<int>
.
您可以在msdn上阅读有关匿名类型概念的更多信息:https://msdn.microsoft.com/en-us/library/bb397696.aspx
归档时间: |
|
查看次数: |
90 次 |
最近记录: |