Как сохранить элементы из 3 ListView в классе

#c# #list #data-structures

#c# #Список #структуры данных

Вопрос:

У меня есть 3 ListView, которые заполняются следующим образом (ну, это может быть что угодно, listview — это просто пример):

это первый список:

 LIST1     LIST2     LIST3
A1         
B1
C1
  

Если я нажму на ‘A1’, list2 получит некоторые элементы:

 LIST1     LIST2     LIST3
A1         A2
B1         B2
C1         C2
           D2
           E2
  

То же самое происходит, когда я нажимаю на элемент в list2, тогда list3 получит некоторые элементы. На этот раз я нажимаю на A2:

 LIST1     LIST2     LIST3
A1         A2       A3
B1         B2       B3
C1         C2       
           D2       
           E2
  

Итак, идея в том, как я могу создать объект (класс), который обрабатывает все данные listview?

Если бы их было всего 2, я думал бы так:

 public class StoreData
{
   public string ListOne {get;set;}
   public List<string> ListTwo = new List<string>();

   public AddToLostTwo(string text)
   {
      ListTwo.Add(text)
   }
}
  

И я мог бы сделать во время выполнения:

 foreach(string str in ListOne)
{
   List<StoreData> datas = new List<StoreData>();
   StoreData data = new StoreData();

   data.ListOne = str;

   foreach(string str2 in ListTwo)
   {
      data.AddToListTwo(str2);
   }
}
  

Итак, мой вопрос в том, каков наилучший способ сделать это в c # для более чем 2 списков? Обратите внимание, что позже я хочу распечатать на бумаге что-то вроде этого:

 DUMP LISTS
----------
NAME      VALUE      VALUE
A1         A2        A3
                     B3

A1         B2        D3
                     E3
  

Пожалуйста, дайте мне знать, если я недостаточно ясно выразился!

Ответ №1:

На самом деле вам не нужен ваш собственный класс для этого. Как насчет использования Dictionary подобного

 Dictionary<string, IList<string>> lists = new Dictionary<string, IList<string>>();
  

Затем вы можете добавить новый список, например

 lists.Add("List1");
  

И добавлять элементы в этот список, например

 lists["List1"].Add("Item1");
  

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

1. Не могли бы вы, пожалуйста, дать код, чтобы показать, как выгружать данные, также используя ваш код?

Ответ №2:

 public class StoreData
{
   public string ItemName {get;set;}
   public List<StoreData> ChildList = new List<StoreData>();

   public AddToChilds(StoreData data)
   {
      ChildList.Add(data)
   }
}
  

На мой взгляд, использование этой структуры классов позволит вам иметь столько уровней, сколько вы хотите.