Json SelectListItem 将项目添加到列表顶部

Json SelectListItem add item to top of list

我在 ActionResult 中返回以下 Json:

return Json(_lookUp.GetMgmtByIDs(_mgmtService.GetMgmt(D).ToList(), selectedIDs.ToList())
                            .Select(x => new SelectListItem { Text = x.SName, Value = x.SID.ToString() }) 
                            .OrderBy(y => y.Text), JsonRequestBehavior.AllowGet);

我需要将一个项目添加到列表的顶部:“请 Select”,值为 0。我不知道该怎么做。

我知道我们可以执行以下操作,但在这种情况下不起作用:

.Insert(0, "Please Select");

我想像这样的东西可能会起作用:

new[]{ new SelectListItem { Text = "Please Select", Value = "0" } }.Concat(

  _lookUp.GetMgmtByIDs(_mgmtService.GetMgmt(D).ToList(), selectedIDs.ToList())
    .Select(x => new SelectListItem { Text = x.SName, Value = x.SID.ToString() })
    .OrderBy(y => y.Text)

)

虽然它可能会在未来给您带来一些翻译问题

I know we can do the following but does not work in this case:

如果您首先具体化为一个列表,那将有效:

var list = _lookUp.GetMgmtByIDs(_mgmtService.GetMgmt(D).ToList(), selectedIDs.ToList())
    .Select(x => new SelectListItem { Text = x.SName, Value = x.SID.ToString() })
    .OrderBy(y => y.Text)
    .ToList();

list.Insert(0, new SelectListItem { Text = "Please Select", Value = "0" });

然后 return list