如何在一个类中存储3个ListView的项目

时间:2011-11-14 09:46:20

标签: c# list data-structures

我有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);
   }
}

所以我的问题是,对于超过2个列表,在c#中执行此操作的最佳方法是什么?请注意,我想稍后在纸上打印出这样的内容:

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

A1         B2        D3
                     E3

如果我不够清楚,请告诉我!

2 个答案:

答案 0 :(得分:1)

你真的不需要自己的课程。如何使用Dictionary之类的

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

然后你可以添加新的列表,如

lists.Add("List1");

将项目添加到该列表中,如

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

答案 1 :(得分:1)

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

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

根据我的观点,使用这个类结构将允许你拥有任意数量的级别。