public bool RemoveProduct(int id)
{
// code to remove product by the id provided as parameter
try
{
var prod = productlist.Where(s => s.ProductId == id).FirstOrDefault();
productlist.Remove(prod);
}
catch (Exception)
{
return false;
}
return true;
}
我尝试使用参数Id调用函数RemoveProduct(id),但参数Id不在productlist中,它应该返回false,但无论如何它总是返回true。如何解决此问题,并在给定id的产品不在列表中时返回false?
2条答案
按热度按时间moiiocjp1#
这是因为
FirstOrDefault()
或Remove()
在列表中找不到值时都不会引发异常。如果没有找到您的项目(
prod == null
),则可以返回false。或者只返回
Remove()
的结果(尽管如果您有一个null项,并且没有找到具有所提供id的项,您最终会删除它并返回true)就像现在一样,方法返回false的唯一情况是列表为空,从而导致
NullReferenceException
pgvzfuti2#
如果你真的想要一个真/假的返回,我会做这样的事情。