我有一个像这样的system.object:
object paramNames = new object[]
{
1,
2,
3,
4,
};
我正在尝试分配值,我需要在循环中执行它而不是手动执行,所以......这样:
for (int i = 0; i < inputcount; i++)
{
paramNames[i] = int.Parse(textreader.ReadLine());
}
但是我遇到了这个错误:无法将带有[]的索引应用于'object'类型的表达式。 如果你能帮助我,我真的很感激!
答案 0 :(得分:1)
您需要执行以下操作:
object[] paramNames = new object[]
{
1,
2,
3,
4,
};
或更好
var paramNames = new int[]
{
1,
2,
3,
4,
};
或更好
var paramNames = new[]
{
1,
2,
3,
4,
};
答案 1 :(得分:1)
您的问题是,您已将parmNames
声明为Object
类型。您需要将变量声明为类型Object[]
object[] paramNames = new object[]
{
1,
2,
3,
4,
};
有趣的是:object[] paramNames = new object[]
实际上是合法的,因为Object[]
可以转换为Object
这意味着您也可以在技术上修复它:
((Object[])paramNames)[i] = int.Parse(textreader.ReadLine());
你不应该这样做,但不太清楚,但它说明了为什么赋值不会抛出编译器异常,并且尝试的赋值也是如此。
答案 2 :(得分:0)
您可以使用以下
var paramNames = new List<object>();
for (int i = 0; i < inputcount; i++)
{
paramNames.Add(int.Parse(textreader.ReadLine()));
}