C# 删除包含多个项目的列表中项目的一个项目

C# 删除包含多个项目的列表中项目的一个项目,c#,asp.net-mvc,list,C#,Asp.net Mvc,List,在我的应用程序中,我有一个类,其中包含以下项目的列表: public class Order { (...) public List<OrderDetailInfo> mListOrderDetail { get; set; } } 在我的应用程序中的某个地方,我必须用空的东西填充这个列表。因此,我创建了一组“false”orderDetails对象,它们都具有相同的id:9999。我这样做是因为这个订单需要稍后确认 确切地说,当确认此订单时,我需要根据用户的输入

在我的应用程序中,我有一个类,其中包含以下项目的列表:

public class Order
{
    (...)
    public List<OrderDetailInfo> mListOrderDetail { get; set; } 
}
在我的应用程序中的某个地方,我必须用空的东西填充这个列表。因此,我创建了一组“false”orderDetails对象,它们都具有相同的id:9999。我这样做是因为这个订单需要稍后确认

确切地说,当确认此订单时,我需要根据用户的输入删除一组项目,并用他创建的其他项目替换它们。所以我试着这样做:

for (int i = 0; i < _itemQuantity; i++)
{
    var emptyJug = order.mListOrderDetail.SingleOrDefault(
            _item => _item.mInventoryID == 9999);

    order.mListOrderDetail.Remove(emptyJug);
}
for(int i=0;i<\u itemQuantity;i++)
{
var emptyJug=order.mListOrderDetail.SingleOrDefault(
_item=>\u item.mInventoryID==9999);
order.mListOrderDetail.Remove(清空罐子);
}

但是,当“var emptyJug”行被点击时,该行崩溃,因为可能会出现很多情况。我需要从列表中删除一个单位的emptyJug,直到达到_itemQuantity。我该怎么做呢?

调用
FirstOrDefault
而不是
SingleOrDefault

FirstOrDefault()
用于在集合中预期出现零个或多个结果时使用。如果有多个结果,则调用此方法返回第一项,如果没有,则返回默认值


SingleOrDefault()
用于输入集合中预期为零或一个结果的情况。如果只存在一个结果,则调用此方法返回一个结果;如果没有结果,则返回默认结果;如果有多个结果,则返回异常。

调用
FirstOrDefault
而不是
SingleOrDefault

FirstOrDefault()
用于在集合中预期出现零个或多个结果时使用。如果有多个结果,则调用此方法返回第一项,如果没有,则返回默认值

SingleOrDefault()
用于输入集合中预期为零或一个结果的情况。如果只存在一个结果,则调用此方法返回一个结果;如果没有结果,则返回默认结果;如果有多个结果,则返回异常。

尝试使用“FirstOrDefault”而不是“SingleOrDefault”。

尝试使用“FirstOrDefault”而不是“SingleOrDefault”

for (int i = 0; i < _itemQuantity; i++)
{
    var emptyJug = order.mListOrderDetail.SingleOrDefault(
            _item => _item.mInventoryID == 9999);

    order.mListOrderDetail.Remove(emptyJug);
}