序列化到XML文档
我想序列化这个类,将显示在XML文档中。序列化到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();
}
没有你的每一天
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));
}
)
}
希望它有帮助。
是的,这有助于很多。我现在遇到的问题是Random rnd = new Random();给了我所有人的相同数字。这是'Inventoryttype.Add(新的InventoryType(日期,hotel.id,roomType.id,** num **))中的数字;' – user6875449
如果你想随机改变所有的时间,你应该把它放在相同的循环作为您添加inventorytype对象的循环。更新我的回复。 – IamNguele
Ah k。得到它了。它现在正在改变。感谢您的帮助 – user6875449
for(var inventoryttype)?我并没有真正明白你想要做什么。如果你想在列表中的所有对象中添加所有日期而不是它。 – TigOldBitties