我还不熟悉C#,在使用数组时遇到了一些问题。我有一个元数据对象(名称-值对)的数组,我想知道如何只创建我真正需要的“InputProperty”对象数量。在这个循环中,我任意地将元素数设置为20,并在条目变为空时尝试退出,但接收此内容的Web服务不允许传递任何空元素:
private Update BuildMetaData(MetaData[] nvPairs)
{
Update update = new Update();
InputProperty[] ip = new InputProperty[20]; // how to make this "dynamic"
int i;
for (i = 0; i < nvPairs.Length; i++)
{
if (nvPairs[i] == null) break;
ip[i] = new InputProperty();
ip[i].Name = "udf:" + nvPairs[i].Name;
ip[i].Val = nvPairs[i].Value;
}
update.Items = ip;
return update;
}
总之,如果上述输入数组中只有3个名称值对,我该怎么办?而不是为名为ip的数组分配20个元素,如何编写代码使得ip只需要尽可能小。更新对象将通过另一个web服务传递,因此序列化非常重要(即不能使用namevaluecollection等)。
附:唯一跟进已发布问题的方式是通过“添加评论”功能吗?