从C#中的SelectList中删除项目

时间:2015-06-12 12:35:42

标签: c# selectlist

我有一个方法,其中返回selectList。 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,我必须使用Key&#34; Disapprove&#34;删除该项目。 任何人都可以帮助我解决这个问题。

3 个答案:

答案 0 :(得分:8)

您必须使用Where()来过滤它们,然后将List<SelectListItem>的返回对象传递给SelectList构造函数,以获取新的SelectList,它不会包含值&#的项目34;以这种方式拒绝&#34;

public class SomeController
{

   public ActionResult Index()
   {

       SelectList list = GetRoutingActionList();

       list  = new SelectList(list 
                              .Where(x => x.Value != "Disapprove")
                              .ToList(),
                              "Value",
                              "Text");

        return View();
   }

}

答案 1 :(得分:2)

{{1}}

答案 2 :(得分:1)

只需将其从字典中删除即可。作为参考,它将自动从SelectList中删除。

routingActions.Remove("Disapprove");