0

解決できない問題があります。

ここにコードがあります

 sik input = new sik();
        for (int i = 0; i < 5; i ++)
        {
            input.skId = securitiesArray[i].skId;
            input.country = securitiesArray[i].country;

        }
   sik[] inputs = new sik[]
            {
                input
            };

これで、sik[] リストに 1 つの値しか入れられないことがわかりました。

このリストに 5 つの値をすべて入れるにはどうすればよいですか。

ありがとう

注: 最初に ski[] を初期化できません。これは、この順序で実行する必要があります。

4

6 に答える 6

5

配列でなければならない理由はありますか?

List<sik> input = new List<sik>();

for (int i = 0; i < 5; i ++)
{
    var newInput = new sik();        
    newInput.skId = securitiesArray[i].skId;
    newInput.country = securitiesArray[i].country;
    input.Add(newInput);
}

List が便利な理由は、動的に拡張できるため、追加する必要があるインスタンスの数を心配する必要がないからです。

List とそのすべての輝かしいメソッドに関する MSDN ドキュメント http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

于 2013-03-12T22:13:15.467 に答える
1

これを行うこともできます。

List<sik> input=new List<sik>();
for(int i=0;i<securitiesArray.Length;i++)
{
   input.Add(new{skId=securitiesArray[i].skid,country=securitiesArray[i].country});
}
于 2013-03-12T22:18:22.590 に答える
1

可変サイズの配列を使用することはできませんが、代わりに List を使用できます。

    List<sik> siks = new List<sik>();
    sik input = new sik();
    for (int i = 0; i < 5; i ++)
    {
        input.skId = securitiesArray[i].skId;
        input.country = securitiesArray[i].country;

        siks.Add(input);
    }

まだ配列が必要な場合は、使用しますsik[] inputs = skis.ToArray();

于 2013-03-12T22:14:35.333 に答える
1
    sik[] inputs = new sik[5];
    for (int i = 0; i < 5; i ++)
    {
        sik input = new sik();
        input.skId = securitiesArray[i].skId;
        input.country = securitiesArray[i].country;
        inputs[i] = input;
    }
于 2013-03-12T22:12:37.987 に答える
1

これを行うには、Linq を使用できます。

sik[] inputs = securitiesArray.Select(item => 
    new sik() 
    { 
        skId = item.skId, 
        country = item.country 
    }).ToArray();
于 2013-03-12T22:13:01.903 に答える
1

価値があるのは、ここでLinqのアプローチです:

sik[] inputs = Enumerable.Range(0, 5)
    .Select(i => new sik{ kId = securitiesArray[i].skId, country = securitiesArray[i].country})
    .ToArray();

securitiesArrayタイプの場合sik(プロパティが示唆する)、そこから直接選択できます。

sik[] inputs = securitiesArray.Take(5).ToArray();
于 2013-03-12T22:15:33.787 に答える