Не удается неявно преобразовать тип void в System.Collections.GenericList - PullRequest
0 голосов
/ 15 июня 2019

У меня проблема со списками. В моем цикле 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;

    }

}

}

1 Ответ

1 голос
/ 15 июня 2019

Вы должны сделать это так:

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);
...