【发布时间】:2019-06-15 11:13:19
【问题描述】:
我遇到了列表问题。 在我的 for 循环中,我试图在某个索引的列表中添加一个元素。
我收到的列表FinalKnotsVector 的错误是:
“无法将类型 'void' 隐式转换为 System.Collections.Generic.List”
有人可以帮助我吗?
{
[MultiReturn(new[] { "l", "n","FinalKnotsVector"})]
public static Dictionary<string, object> InLength(List<double> Initialknots, int p, List<double> KnotInserted)
{
int l; //OUTPUT: Length of the initial knot vector
l = Initialknots.Count;
int n; //OUTPUT: Number of initial control points
n = l - 1 - p;
List<double> FinalKnotsVector = new List<double>();
for (int i = 1; i < KnotInserted.Count; i++)
{
FinalKnotsVector=Initialknots.Insert(i, KnotInserted[i]);
}
var d = new Dictionary<string, object>();
d.Add("l", l);
d.Add("n", n);
d.Add("FinalKnotsVector", FinalKnotsVector);
return d;
}
}
}
【问题讨论】:
-
Initialknots.Insert修改Initialknots列表并且不返回任何内容。所以不能将返回值赋给FinalKnotsVector。 -
Initialknots.Insert返回类型为 void。您不能将 void 分配给列表 -
你应该在
for循环中说明你想做什么。 -
@poke 嗨,谢谢。我想做的是在 Initialknots 中插入一些从 KnotInserted 通过 for 循环获取的值。我能怎么做?我想要一个新的列表而不是一个空的列表
-
复制
Initialknots列表,然后附加到它:FinalKnotsVector = new List<double>(Initialknots);,然后在循环内:FinalKnotsVector.Add(KnotInserted[i]);