You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向LINQ查询得到的SelectListItem列表中添加手动项‘All’

如何向SelectListItem列表添加'All'项?

我有如下列表生成代码:

var listOfParks = (from s in DB.MasterDatas 
                   select new SelectListItem { Text = s.service_under, })
                   .Distinct()
                   .Union( from t in DB.MasterDatas 
                           join f in DB.Users1 on t.pv_person_resp_id equals f.user_id 
                           select new SelectListItem { Text = f.user_name })
                   .ToList();

但我需要手动向该列表中添加‘All’项,目前尝试的代码没写完,请问该如何正确实现这个需求?

这有几种简单且实用的实现方式,你可以根据自己的习惯选择:

方法1:先生成原有列表,再插入'All'到首位

这种方式最直观,先完成你原本的查询并转成List,再用Insert方法把'All'项放在最前面:

// 先获取原有查询的结果列表
var listOfParks = (from s in DB.MasterDatas 
                   select new SelectListItem { Text = s.service_under, })
                   .Distinct()
                   .Union( from t in DB.MasterDatas 
                           join f in DB.Users1 on t.pv_person_resp_id equals f.user_id 
                           select new SelectListItem { Text = f.user_name })
                   .ToList();

// 添加'All'项到列表开头,Value可根据业务需求设置
listOfParks.Insert(0, new SelectListItem { Text = "All", Value = "" });

方法2:用LINQ的Concat直接拼接'All'项

如果你想在LINQ链式调用里一步完成,可以先创建一个包含'All'项的单元素集合,再和原查询结果拼接:

// 先定义单独的'All'项集合
var allOption = new List<SelectListItem> 
{ 
    new SelectListItem { Text = "All", Value = "" } 
};

// 拼接'All'项和原有查询结果
var listOfParks = allOption.Concat(
    (from s in DB.MasterDatas 
     select new SelectListItem { Text = s.service_under, })
    .Distinct()
    .Union( from t in DB.MasterDatas 
            join f in DB.Users1 on t.pv_person_resp_id equals f.user_id 
            select new SelectListItem { Text = f.user_name })
).ToList();

小提示

  • 别忘了给SelectListItem设置Value属性,不然默认是null,在下拉框等场景使用时可能出现异常,你可以根据业务需求设为"All"或者空字符串。
  • 即使原有查询结果为空,这两种方法也能正常工作,不会报错。

内容的提问来源于stack exchange,提问作者papagallo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:28:24