我被要求在 ComboBox 中添加一个“ALL”项,该查询被分配为其数据源,项“ALL”应该是控件中看到的第一个项
Dim qryEmp = From emp In db.Members.ToList
Order By emp.LogonId Ascending
Select New GPUserQueryResult With {
.LoginId = emp.LogonId,
.FullName = GetUserName(emp.LogonId)
}
我最终使用的代码是这样的:
Dim allUser() As GPUserQueryResult = {New GPUserQueryResult With {.LoginId = -1, .FullName = AllValues}}
Dim addEmpty As IEnumerable(Of GPUserQueryResult) = allUser
Dim allRecs As IEnumerable(Of GPUserQueryResult) = addEmpty.Union(qryEmp)
EmpList = allRecs.ToDictionary(Function(x) x.LoginId, Function(x) x.FullName)
起初虽然我试过这个:
Dim allUser() As GPUserQueryResult = {New GPUserQueryResult With {.LoginId = -1, .FullName = AllValues}}
Dim addEmpty As IEnumerable(Of GPUserQueryResult) = allUser
Dim allRecs As IEnumerable(Of GPUserQueryResult) = qryEmp.Union(addEmpty)
EmpList = allRecs.ToDictionary(Function(x) x.LoginId, Function(x) x.FullName)
EmpList.Keys.OrderBy(Function(x) x)
但是“ALL”项目始终是最后一个,即使我尝试使用 OrderBy 方法,有人可以解释为什么吗?如果这是实现目标的最佳方式