私はまだ 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 「コメントを追加」機能を通じて投稿された質問をフォローアップする唯一の方法はありますか?