Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中从SelectList中删除项#_C#_Selectlist - Fatal编程技术网

C# 在C中从SelectList中删除项#

C# 在C中从SelectList中删除项#,c#,selectlist,C#,Selectlist,我有一个方法,其中返回我selectList。selectList的某些项将根据键以编程方式删除 public SelectList GetRoutingActionList() { Dictionary<string, string> routingActions = new Dictionary<string, string> {

我有一个方法,其中返回我selectList。selectList的某些项将根据键以编程方式删除

 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;
    }
public SelectList GetRoutingActionList()
{
字典路由操作=新字典{
{“批准”、“批准”},
{“返回”、“返回…”,
{“返回发件人”、“返回发件人”},
{“不赞成”,“不赞成”},
{“暂停设置”、“暂停设置”}
};
SelectList routingActionList=新建SelectList(routingActions,“键”,“值”);
返回路由操作列表;
}
对于eaxmple,我必须删除键为“不批准”的项。
任何人都可以帮我解决这个问题。

您必须使用
Where()
过滤它们,然后将
List
的返回对象传递给
SelectList
构造函数,以获得新的SelectList,该SelectList将不会有值为的项“不批准”,方法如下:

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()
{
字典路由操作=新字典{
{“批准”、“批准”},
{“返回”、“返回…”,
{“返回发件人”、“返回发件人”},
{“不赞成”,“不赞成”},
{“暂停设置”、“暂停设置”}
};
SelectList routingActionList=新建SelectList(routingActions,“键”,“值”);
返回routingActionList.Where(x=>x.Key!=“不批准”)
.ToList();
}

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

routingActions.Remove("Disapprove");

路由操作。删除(“不批准”)
?问题不清楚。也许您想要的是从routingActions中删除某些内容,而不是从selectList中删除。上面的方法将selectList返回给控制器,在控制器内部,我可能需要删除某些项目@pinturic@impream然后看我的答案,我解释了如何做到这一点,实际上GetRoutingActionList()是从其他控制器调用的常用方法,并且返回的selectlist中的项将根据controller@ehsan中的要求删除。您可以在controller或view中使用上述代码,无论您需要在何处删除项
routingActions.Remove("Disapprove");