【发布时间】:2013-01-17 13:26:24
【问题描述】:
我正在制作一个系列。我需要从集合中删除一项并使用过滤/删除的集合。
这是我的代码
public class Emp{
public int Id{get;set;}
public string Name{get;set;}
}
List<Emp> empList=new List<Emp>();
Emp emp1=new Emp{Id=1, Name="Murali";}
Emp emp2=new Emp{Id=2, Name="Jon";}
empList.Add(emp1);
empList.Add(emp2);
//Now i want to remove emp2 from collection and bind it to grid.
var item=empList.Find(l => l.Id== 2);
empList.Remove(item);
问题是即使删除了我的收藏品后仍显示计数 2。
可能是什么问题?
编辑:
原始代码
var Subset = otherEmpList.FindAll(r => r.Name=="Murali");
if (Subset != null && Subset.Count > 0)
{
foreach (Empl remidateItem in Subset )
{
Emp removeItem = orginalEmpList.Find(l => l.Id==
remidateItem.Id);
if (removeItem != null)
{
orginalEmpList.Remove(remidateItem); // issue here
}
}
}
它工作正常。在实际代码中,我正在删除 remediateItem。补救项是 相同的类型,但属于不同的集合。
【问题讨论】:
-
你能告诉我们你的实际代码吗?事实上,这不会编译。您提供的内容(修复后)有效。
-
您的问题是从集合中删除项目还是更新用户界面?也许该项目已成功从集合中删除,但 UI 未更新。
-
是的。当我运行代码时,它似乎可以工作,当您修复编译错误时。
-
我需要根据其他集合过滤许多。现在使用循环。更新的代码。有没有其他办法?
-
@Murali 我没有理由删除这个问题。此问题有答案,请将其中一个答案标记为正确答案,或添加您自己的答案。
标签: c# asp.net list collections