このクエリが DataSource として割り当てられている 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メソッドを使用しようとしたにもかかわらず、誰かが理由を説明できますか? そして、これが目標を達成するための最良の方法であった場合