Проходя по списку создавать объект внутри другого
Вот код:
class Node
{
static List<string> list = new List<string>(){"первый","второй","третий","четвертый"};
public string Name { get; set; }
public Node Node { get; set; }
static void Load()
{
foreach (var @var in list)
{
}
}
}
Что разместить в цикле foreach, что бы при запуске метода Load создался бы объект типа Node с именем первый, внутри которого был бы объект типа Node с именем второй, внутри которого был бы объект типа Node с именем третий, внутри которого был бы объект типа Node с именем четвертый?
Ответы (1 шт):
Автор решения: return
→ Ссылка
Очень хромает вопрос: вы куда собрались ваши узлы загружать; непонятно, зачем вам List вместо массива; одно св-во с прописной буквы, другое – со строчной, а переменная (VAR) вообще капсом; хорошие отступы... Ну да ладно:
public class Node
{
static readonly string[] names = new[] { ... };
public string? Name { get; set; }
public Node? Child { get; set; }
public static Node Load()
{
// checks skipped
var curNode = new Node();
var rootNode = curNode;
for (var i = 0; i < names.Length - 1; i++)
{
var name = names[i];
curNode.Name = name;
curNode.Child = new Node();
curNode = curNode.Child;
}
curNode.Name = names[^1];
return rootNode;
}
}
Примечание: Вариант рабочий, но можно доработать. Я старался не выходить за рамки модели вопроса.