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