问题描述
我有一个IList,还有一个方法可以检查该项目是否已在列表中,如果是,则需要将其删除/删除并再次添加。
private PurchaseItemviewmodel CheckSessionPurchaseItemviewmodel(long purchaseLevelId)
{
bool itemFound = false;
PurchaseItemviewmodel purItem = new PurchaseItemviewmodel();
foreach (var item in UserSession.UserDataPurchaseItems)
{
if (item.PurchaseLevelId == purchaseLevelId)
{
itemFound = true;
purItem.Note = item.Note;
purItem.PurchaseAmount = item.PurchaseAmount;
purItem.PurchaseLevelId = item.PurchaseLevelId;
}
}
if (itemFound)
{
return purItem;
}
return null;
}
如果上述方法找到了购买商品,则返回一个对象,否则返回null。
IList<PurchaseItemviewmodel> purchaseSessionList = UserSession.UserDataPurchaseItems;
PurchaseItemviewmodel pItem = CheckSessionPurchaseItemviewmodel(levelId);
if(pItem != null)
{
purchaseSessionList.Remove(item);
}
**purchaseSessionList.Remove(item);**
解决方法
使用此代码删除:
if(pItem != null) purchaseSessionList.Remove( purchaseSessionList.SingleOrDefault( s => s.PurchaseLevelId== levelId) );
恕我直言,您无需创建pItem,就足以返回false或true或项主键。