我有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
如果我不够清楚,请告诉我!
答案 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)
}
}
根据我的观点,使用这个类结构将允许你拥有任意数量的级别。