无法将类型 void 隐式转换为 System.Collections.GenericList

Cannot implicitly convert type void to System.Collections.GenericList

我在使用列表时遇到问题。 在我的 for 循环中,我试图在某个索引的列表中添加一个元素。

我收到的列表 FinalKnotsVector 的错误是:

"Cannot implicitly conver type 'void' to 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;

    }

}

}

你应该这样做:

List<double> FinalKnotsVector = new List<double>(Initialknots);
foreach (var value in KnotInserted)
{
    FinalKnotsVector.Insert(FinalKnotsVector.IndexOf(value), value);
}

这是简单明了的方法。看看这是否符合您的要求。

请注意,我没有更改 Initialknots在您的代码中,但是您正试图向其中插入一个项目)。如果您还需要更改它,那么首先更改 Initialknots,然后您可以创建 FinalKnotsVector 并将 Initialknots 传递给构造函数,如下所示:

foreach (var value in KnotInserted)
{
    Initialknots.Insert(Initialknots.IndexOf(value), value);
}
List<double> FinalKnotsVector = new List<double>(Initialknots);