我正在使用C#和asp.net来查询Web服务。
用户将输入访客数量,然后我需要添加它 Web服务调用的访客数量。像这样手动创建客人。
// Create room layout for searching
Guest adult = new Guest();
adult.Id = 1;
adult.Title = "Mr";
adult.Firstname = "Test";
adult.Surname = "Test";
Guest adult2 = new Guest();
adult2.Id = 2;
adult2.Title = "Mr";
adult2.Firstname = "Test";
adult2.Surname = "Test";
Guest[] adults = new Guest[] { adult,adult2 };
用户选择我网站搜索的成人人数 页面,我不知道成人的数量,并希望能够动态添加到Web服务调用。我将收到像这样的成年人数量
int numberofguests = Convert.ToInt32(search.Guest);
我已经尝试了很多方法,但无法让它工作
答案 0 :(得分:6)
List<Guest> guests = new List<Guest>();
for(int i=0; i<numberOfGuests; i++)
{
guests.Add(new Guest()
{
Title = "Mr",
Firstname = "Test",
});
}
return guests.ToArray();
答案 1 :(得分:2)
在这种情况下,我建议使用List而不是数组。如果仍然需要将数组作为数组填充,则可以将其转换为数组。
答案 2 :(得分:2)
为什么不使用ArrayList或List&lt; Object&gt;?
,而不是使用原始数组var list = new List<Guest>();
adult.Id = 1;
adult.Title = "Mr";
adult.Firstname = "Test";
adult.Surname = "Test";
list.Add(adult);
Guest adult2 = new Guest();
adult2.Id = 2;
adult2.Title = "Mr";
adult2.Firstname = "Test";
adult2.Surname = "Test";
list.Add(adult2);
Guest[] adults = list.ToArray();
答案 3 :(得分:2)
所有其他答案都建议使用List<Guest>
并且通常我同意 - 但在这种情况下确实没有必要,因为您似乎事先知道尺寸:
Guest[] guests = new Guest[numberOfGuests];
for (int i=0; i < numberOfGuests; i++)
{
Guest guest = new Guest();
// Fill in information about the guest here
// based on the web form
guests[i] = guest;
}
这并不是说你不应该使用List<Guest>
如果这样做更方便 - 这只是使用List<T>
的(可能)最大好处是你不需要事先知道大小。因为这里没有相关性(除非我遗漏了什么),没有太多理由使用列表。
答案 4 :(得分:0)
我建议您使用List<Guest>
。您可以在创建时使用guest虚拟机数初始化大小,但这实际上只是一个优化。如果您想稍后添加更多访客,则可以执行此操作,List
将根据需要调整大小。
List
会有ToArray()
方法。