C# 如何添加到循环中的对象[]?
编辑:原来的问题没有意义,所以希望这个问题有意义 如何制作下面的对象C# 如何添加到循环中的对象[]?,c#,C#,编辑:原来的问题没有意义,所以希望这个问题有意义 如何制作下面的对象 object[] parms = { "p1", 1, "p2", 2, "p3", 3,..., "pn", n }; 显然,这是行不通的: foreach (var id in ids) { objects[] parms = { "p" + id.ToString(), id }; } 既然问题已经改变了 您可以像这样构造对象数组: List<int> ids = new List&
object[] parms = { "p1", 1, "p2", 2, "p3", 3,..., "pn", n };
显然,这是行不通的:
foreach (var id in ids)
{
objects[] parms = { "p" + id.ToString(), id };
}
既然问题已经改变了 您可以像这样构造对象数组:
List<int> ids = new List<int> { 1, 2, 3, 4, 5 }; //assuming your ids are like that
List<object> objList = new List<object>();
foreach (var item in ids)
{
objList.Add("p" + item);
objList.Add(item);
}
object[] parms = objList.ToArray();
见:
您可以发送指定类型的参数的逗号分隔列表
在参数声明或
指定的类型
您还可以执行以下操作:
someFunction("string", ids.Select(r => "p" + r).ToArray());
您可以简单地将列表转换为数组
someFunction("", parms.toArray());
可以这样更改它:
someFunction( string a, IList parms)
{
// this should receive array of actual {p#'s, #'s}
}
其他答案在如何使用参数的说明中是正确的 但在你的例子中,你是双重嵌套你的对象数组 您的
参数[0]
是一个对象[2]
——可能是因为id中有两个id,并且您正在将每个“由id构成的东西”添加为对象[]
因此,params[0][0]
是您的第一个id的pID字符串,params[0][1]
是它的数字id
为了使它更清晰,您可以定义自己的类来保存信息,或者使用Tuple。然后,检查params[]的内容,它应该是这种类型的,您可以强制转换它们并使用它们。someFunction(“,parms.ToArray())我不知道你在问什么。什么是实际的{p#'s,{p#'s}
?well inspector显示parms[0]是对象[2],但我希望parms[0]显示{p1,1}.@O.O这是一个大小为2的数组,所以它正是您想要的。@O.O然后不再传入数组,传入一个数组,其中包含一个ToString
实现,它可以实现您希望它做的事情。也许可以,也许不可以。你不能肯定。不过,他问如何将集合传递给只接受数组的对象,所以这目前是错误的。然而,C#6可能会引入params-IEnumerable,这将是非常棒的。
someFunction( string a, IList parms)
{
// this should receive array of actual {p#'s, #'s}
}