如何存储3 ListView';s在一个班里

本文关键字:一个 何存储 存储 ListView | 更新日期: 2023-09-27 18:14:46

我有3个ListView,它们是这样填充的(好吧,这可以是任何东西,ListView只是一个例子(:

这是第一个列表:

LIST1     LIST2     LIST3
A1         
B1
C1

如果我点击"A1",list2将获得一些项目:

LIST1     LIST2     LIST3
A1         A2
B1         B2
C1         C2
           D2
           E2

当我点击列表2中的一个项目时,同样的情况也会发生,然后列表3会得到一些项目。我这次点击A2:

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

因此,我的想法是,如何创建一个包含所有列表视图数据的对象(类(?

如果只有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

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

如何存储3 ListView';s在一个班里

您实际上并不需要自己的类。使用类似Dictionary的怎么样

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

然后你可以添加像这样的新列表

lists.Add("List1");

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

lists["List1"].Add("Item1");
public class StoreData
{
   public string ItemName {get;set;}
   public List<StoreData> ChildList = new List<StoreData>();
   public AddToChilds(StoreData data)
   {
      ChildList.Add(data)
   }
}

在我看来,使用这种类结构可以让你拥有你想要的任意级别。

相关文章: