我有一个我无法解决的问题。
这是代码
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 []。必须按此顺序完成。
答案 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});
}