List <Customer> collCustList = new List<Customer>();
Run Code Online (Sandbox Code Playgroud)
我试过了
if(A==B)
collCustList.Add(new Customer(99, "H", "P"));
else
collCustList.Remove(new Customer(99, "H", "P"));
Run Code Online (Sandbox Code Playgroud)
但它不起作用
我怎么能删除new item(new Customer(99, "H", "P"))我刚添加的?
谢谢
您尝试删除新的Customer实例,而不是删除刚刚添加的Customer实例.您需要获取对第一个Customer实例的引用并将其删除,例如:
Customer customer = new Customer(99, "H", "P");
collCustList.Add(customer);
collCustList.Remove(customer);
Run Code Online (Sandbox Code Playgroud)
或者,更简洁地说,如果你知道你正在删除你可能做的最新客户:
collCustList.Remove(collCustList.Last());
Run Code Online (Sandbox Code Playgroud)
如果您没有对要删除的Customer实例的现有引用,则可以使用Linq查询,如下所示:
Customer customer = collCustList.Where(c => c.Number == 99 && c.Type == "H" /* etc */).FirstOrDefault();
if (customer != null)
{
collCustList.Remove(customer);
}
Run Code Online (Sandbox Code Playgroud)
甚至只是使用RemoveAll()方法:
collCustList.RemoveAll(c => c.Number == 99 && c.Type == "H" /* etc */);
Run Code Online (Sandbox Code Playgroud)