如何从 Ilist 中删除项目
How to remove items from Ilist
我有一个 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;
}
如果上述方法找到购买项目,那么它 returns 一个对象,否则为 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,足以 return false 或 true 或项目主键。
我有一个 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;
}
如果上述方法找到购买项目,那么它 returns 一个对象,否则为 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,足以 return false 或 true 或项目主键。