问题描述
我有一个Linq SQL查询,如下所示。但是仓库编号不是按排序顺序排列的。我想将下拉列表显示为depotno order。但是显示为“ 1”,“ 18”,“ 19”,“ 2”。我想将其显示为“ 1”,“ 2”,依此类推
IEnumerable<SelectListItem> depotUserList = (from e in ctx.goUserDepartment
join c in ctx.goDepot on e.DepotNo equals c.DepotNo
join user in ctx.goUser
on e.UserID equals user.UserID
where e.UserID == UserID &&
e.IsDeleted == false
orderby c.DepotNo
select new SelectListItem
{
Value = c.DepotNo.ToString(),Text = c.DepotName,Selected = user.DepotNo == e.DepotNo
}).distinct().ToList<SelectListItem>();
解决方法
您的DepotNo类型似乎是字符串类型,建议您尝试在ToList方法之后对结果进行排序。
赞:
IEnumerable<SelectListItem> depotUserList = (from e in ctx.goUserDepartment
join c in ctx.goDepot on e.DepotNo equals c.DepotNo
join user in ctx.goUser
on e.UserID equals user.UserID
where e.UserID == UserID &&
e.IsDeleted == false
select new SelectListItem
{
Value = c.DepotNo.ToString(),Text = c.DepotName,Selected = user.DepotNo == e.DepotNo
}).Distinct().ToList<SelectListItem>().OrderBy(x=> int.Parse(x.Value));