从 C# 中的选择列表中删除项

本文关键字:删除 列表 选择 | 更新日期: 2023-09-27 17:55:50

我有一个方法,可以返回我的选择列表。selectList 的某些项将根据 Key 以编程方式删除。

 public SelectList GetRoutingActionList()
    {
        Dictionary<string, string> routingActions = new Dictionary<string, string> { 
                                                        { "Approved", "Approve" },
                                                        { "Return To", "Return To .." }, 
                                                        { "Return To Sender", "Return To Sender" }, 
                                                        { "Disapprove", "Disapprove" },
                                                        { "Set On Hold", "Set On Hold" } 
                                                    };
        SelectList routingActionList = new SelectList(routingActions, "Key", "Value");
        return routingActionList;
    }

对于 eaxmple,我必须删除带有"不批准"键的项目。任何人都可以帮我解决这个问题。

从 C# 中的选择列表中删除项

您必须使用 Where() 来过滤它们,然后将返回的 List<SelectListItem> 对象传递给构造函数SelectList以获取新的 SelectList,该列表不会有值为"Disapprovale"的项目:

public class SomeController
{
   public ActionResult Index()
   {
       SelectList list = GetRoutingActionList();
       list  = new SelectList(list 
                              .Where(x => x.Value != "Disapprove")
                              .ToList(),
                              "Value",
                              "Text");
        return View();
   }
}
public SelectList GetRoutingActionList()
    {
        Dictionary<string, string> routingActions = new Dictionary<string, string> { 
                                                        { "Approved", "Approve" },
                                                        { "Return To", "Return To .." }, 
                                                        { "Return To Sender", "Return To Sender" }, 
                                                        { "Disapprove", "Disapprove" },
                                                        { "Set On Hold", "Set On Hold" } 
                                                    };
        SelectList routingActionList = new SelectList(routingActions, "Key", "Value");
        return routingActionList.Where(x => x.Key != "Disapprove")
                                   .ToList();
}

只需将其从字典中删除即可。作为引用,它将自动从选择列表中删除。

routingActions.Remove("Disapprove");