我正在尝试从对象列表中删除一个对象,但是将变量对象设置为null并不会破坏它,它仍然出现在列表中。
我确信这不是最好的方式,但我认为它会起作用,任何指针都会非常有用,谢谢。
代码:
public ActionResult RemoveExisting()
{
pa newpa = (pa)Session["pa_Session"];
if (Session["pa_Session"] != null)
{
var todel = newpa.ExistingPas.FirstOrDefault();
todel = null;
}
return RedirectToAction("Index");
}
答案 0 :(得分:4)
你应该使用删除
var todel = newpa.ExistingPas.FirstOrDefault();
newpa.ExistingPas.Remove(todel);
//than add list back to session object if you want updated list
答案 1 :(得分:2)
代码中的错误是您首先将变量指向要删除的项目,然后将该变量设置为null。
这不会更改项目并且不会更改列表,代码只会处理从未使用过的变量。
使用Remove或RemoveAt更改列表。
答案 2 :(得分:0)
如果您经常需要从List
的开头删除项目,则可以使用Queue
集合类型和Dequeue()
项目。
https://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.110).aspx