将多个值放在数组中

时间:2013-03-12 22:10:52

标签: c# arrays for-loop initialization

我有一个我无法解决的问题。

这是代码

 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 []。必须按此顺序完成。

6 个答案:

答案 0 :(得分:4)

它必须是一个数组?

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有用的原因是它可以随你动态增长,因此您无需担心可能需要添加多少实例。

列表的MSDN文档及其所有光荣的方法 http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

答案 1 :(得分: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;
    }

答案 2 :(得分:1)

您可以使用Linq执行此操作。

sik[] inputs = securitiesArray.Select(item => 
    new sik() 
    { 
        skId = item.skId, 
        country = item.country 
    }).ToArray();

答案 3 :(得分: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();

答案 4 :(得分: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();

答案 5 :(得分: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});
}