我还是 C# 的新手,我一直在努力解决数组上的各种问题。我有一组元数据对象(名称值对),我想知道如何只创建我真正需要的“InputProperty”对象的数量。在这个循环中,我将元素的数量任意设置为 20,并尝试在条目变为 null 时退出,但接收端的 Web 服务不喜欢传递给它的任何 null 元素:
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 等)。
ps 是通过“添加评论”工具跟进已发布问题的唯一方法吗?