我正在尝试序列化这个将在xml文档中显示它的类。
<InventoryType>
<Date>20160925</Date>
<HotelId>123</HotelId>
<RoomType>KB</RoomType>
<Quantity>5</Quantity>
</InventoryType>
<InventoryType>
<Date>20160901</Date>
<HotelId>123</HotelId>
<RoomType>QB</RoomType>
<Quantity>3</Quantity>
</InventoryType>
我有一个列表,我想迭代它,并插入3个日期。像上面一样。但我不知道该怎么做。我知道我需要一个日期时间的forloop。但我是否还需要另一个内部for循环列表?
public void CreateInvenList()
{
Random rnd = new Random();
int num = rnd.Next(1, 10);
DateTime end = new DateTime(2016,09,28);
DateTime start = new DateTime(2016, 09, 25);
List<InventoryType> Inventoryttype = new List<InventoryType>();
Inventoryttype.Add(new InventoryType(start, "123", "KB", num));
Inventoryttype.Add(new InventoryType(start, "124", "qB", num));
for ( DateTime date = start; date < end; date = date.AddDays(1) )
{
for (??)
{
// what goes in here?
}
}
serial = new XmlSerializer(Inventoryttype.GetType());
sw = new StreamWriter(Inventory_Filename);
serial.Serialize(sw, Inventoryttype);
sw.Close();
}
答案 0 :(得分:0)
当您为每天分配值时,不需要另一个循环
for ( DateTime date = start; date < end; date = date.AddDays(1) )
{
num = rnd.Next();
Inventoryttype.Add(new InventoryType(date, "123", "KB", num));
Inventoryttype.Add(new InventoryType(date, "124", "qB", num));
}
如果您想在指定日期仅添加那些房间/酒店类型,那将会有效。但是,如果您有一个酒店和房间的数据源,那么您需要添加一个内部循环来更改酒店,如果每个酒店的房间类型发生变化,那么您应该为房间添加另一个内循环。
如果您的数据源包含多家酒店,但所有酒店都有'KB'和'QB'作为常用房型,则您的代码应如下所示:
for ( DateTime date = start; date < end; date = date.AddDays(1) )
{
foreach (var hotel in hotels)
{
num = rnd.Next();
Inventoryttype.Add(new InventoryType(date, hotel.id, "KB", num));
Inventoryttype.Add(new InventoryType(date, hotel.id, "QB", num));
)
}
如果您为每个酒店提供特定的房型,并且每种房型的默认房间类型,您可以拥有:
for ( DateTime date = start; date < end; date = date.AddDays(1) )
{
foreach (var hotel in hotels)
{
foreach (var roomType in hotels.roomTypes)
{
num = rnd.Next();
Inventoryttype.Add(new InventoryType(date, hotel.id, roomType.id, num));
}
)
}
希望它有所帮助。