循环对象列表,直到满足条件,然后设置后续对象的值,直到再次满足条件



我有一个ItemForSale((的列表:

public class ItemForSale(){
public string Name {get;set;}
public bool OnSale {get;set;}
public int price {get;set;}
}

我有一个销售价格:(将由用户决定(

public int SalePrice {get;set;}

我需要循环浏览这些ItemForSale对象的列表。

如果一个对象是OnSale,那么对于随后列表中的每个对象,将price设置为SalePrice。

直到下一个ItemForSale.OnSale=true。

该过程一直持续到列表中的所有项目都有价格为止。

这个问题是一个非常具体的案例,我试着想最好的方法来问它。很抱歉不清楚。

尝试以下操作:

List<ItemForSale> items = new List<ItemForSale>() {
new ItemForSale() { Name = "abc", OnSale = true},
new ItemForSale() { Name = "def", OnSale = false },
new ItemForSale() { Name = "ghi", OnSale = false},
new ItemForSale() { Name = "jkl", OnSale = true},
new ItemForSale() { Name = "mno", OnSale = false},
new ItemForSale() { Name = "pqr", OnSale = true},
new ItemForSale() { Name = "stu", OnSale = false},
new ItemForSale() { Name = "vwx", OnSale = true},
new ItemForSale() { Name = "yz", OnSale = true}
};
List<List<ItemForSale>> groups = new List<List<ItemForSale>>();
List<ItemForSale> group = null;
foreach (ItemForSale item in items)
{
if (item.OnSale)
{
group = new List<ItemForSale>();
group.Add(item);
groups.Add(group);
}
else
{
group.Add(item);
}
}

最新更新