Создание иерархического объекта в c#

#c# #object #logic

#c# #объект #Логические

Вопрос:

У меня есть образец данных, как показано ниже, которые могут меняться во время выполнения(строки и столбцы могут быть добавлены или удалены).:

 Column1 Column2 Column3 RED Car 100 RED Car 150 RED Bike 140 BLUE Car 240 BLUE Bike 120  

Мой класс выглядит следующим образом:

 public class Data{  public Listlt;Datagt; ChildObjects;  public string strName;  }  

Я хочу создать объект из приведенных выше примеров данных, как показано ниже:

  • parentObj будет содержать 2 дочерних объекта-КРАСНЫЙ и СИНИЙ и strName в качестве
    «родителя».
  • КРАСНЫЙ объект obj будет содержать 2 дочерних объекта АВТОМОБИЛЬ и ВЕЛОСИПЕД и strName как «КРАСНЫЙ».
  • СИНИЙ объект obj будет содержать 2 дочерних объекта АВТОМОБИЛЬ и ВЕЛОСИПЕД и strName как «СИНИЙ».
  • Каждый объект CAR будет содержать 5 дочерних объектов (100,150,140,240,120) и strName как «АВТОМОБИЛЬ».
  • Каждый объект ВЕЛОСИПЕДА будет содержать 5 дочерних объектов (100,150,140,240,120) и strName как «ВЕЛОСИПЕД».

таким образом, структура будет выглядеть следующим образом

 100  150  Car -- 140  240  120 RED---  100  150  Bike -- 140  240  120    100  150  Car -- 140  | 240  | 120 BLUE---  | 100  | 150  Bike -- 140  240  120  

Пожалуйста, помогите мне написать эффективный и динамичный фрагмент кода для логики.

Ответ №1:

 var parentObj = new Data  {  strName = "parent",  ChildObjects = new Listlt;Datagt;  {  // Creation of RED  new Data  {  strName = "RED",  ChildObjects = new Listlt;Datagt;  {  // Creation of Car  new Data  {  strName = "Car",  ChildObjects = new Listlt;Datagt;  {  new Data {strName = "100"},  new Data {strName = "150"},  new Data {strName = "140"},  new Data {strName = "240"},  new Data {strName = "120"}  }  },  // Creation of Bike  new Data  {  strName = "Bike",  ChildObjects = new Listlt;Datagt;  {  new Data {strName = "100"},  new Data {strName = "150"},  new Data {strName = "140"},  new Data {strName = "240"},  new Data {strName = "120"}  }  }  }  },  // Creation of BLUE  new Data  {  strName = "BLUE",  ChildObjects = new Listlt;Datagt;  {  // Creation of Car  new Data  {  strName = "Car",  ChildObjects = new Listlt;Datagt;  {  new Data {strName = "100"},  new Data {strName = "150"},  new Data {strName = "140"},  new Data {strName = "240"},  new Data {strName = "120"}  }  },  // Creation of Bike  new Data  {  strName = "Bike",  ChildObjects = new Listlt;Datagt;  {  new Data {strName = "100"},  new Data {strName = "150"},  new Data {strName = "140"},  new Data {strName = "240"},  new Data {strName = "120"}  }  }  }  }  }  };  

Комментарии:

1. Спасибо за помощь. Но мне нужна динамическая логика для образца. Я не знаю столбцов, строк и данных внутри образца. Это дается во время выполнения.

2. Я не понимаю логики, как эта таблица преобразуется в дерево

3. Здравствуйте, мне нужно то же самое, что и в коде, который вы дали. Но во время выполнения я не знаю, сколько строк и какие значения будут содержать данные выборки. Таким образом, объект должен создаваться динамически.