现在有一特殊需求,有如下一矩阵:
A1(1...n) A2(1...n) A3(1...n) A4(1...n) ... AN(1...n)
B1(1...n) B2(1...n) B3(1...n) B4(1...n) ... BN(1...n)
C1(1...n) C2(1...n) C3(1...n) C4(1...n) ... CN(1...n)
....
...
..
N1(1...n) N2(1...n) N3(1...n) N4(1...n) ... NN(1...n)说明:
A行有未知个元素,其中A行中的每个元素又会有未知个子元素。
而且现在也有未知个像A结构这样的行请问如果用ArrayList来存储这些元素,这段程序如何写呢? 或有无其它更好的办法!!!!???
A1(1...n) A2(1...n) A3(1...n) A4(1...n) ... AN(1...n)
B1(1...n) B2(1...n) B3(1...n) B4(1...n) ... BN(1...n)
C1(1...n) C2(1...n) C3(1...n) C4(1...n) ... CN(1...n)
....
...
..
N1(1...n) N2(1...n) N3(1...n) N4(1...n) ... NN(1...n)说明:
A行有未知个元素,其中A行中的每个元素又会有未知个子元素。
而且现在也有未知个像A结构这样的行请问如果用ArrayList来存储这些元素,这段程序如何写呢? 或有无其它更好的办法!!!!???
我刚试了下,没这种问题啊,可以正常的存,也可以正常的取
ArrayList arr = new ArrayList();
ArrayList al = null;
while(rs.Read()) //ADO记录集
{
int a,b;
string c;
al = new ArrayList();
ArrayList ay = new ArrayList();
a = rs.GetInt32(0);
b = rs.GetString(1).Trim();
c = rs.GetString(2).Trim();
ay = GetSt(a,b,c); //GetSt是一段算法,根据传入参数,返回一个ArrayList
CustomClass cc = new CustomClass(a,ay);
al.Add(cc); ArrayList as = new ArrayList();
a = rs.GetInt32(3);
b = rs.GetString(4).Trim();
c = rs.GetString(5).Trim();
as = GetSt(a,b,c); //GetSt是一段算法,根据传入参数,返回一个ArrayList
CustomClass cc = new CustomClass(a,ay);
al.Add(cc); arr.Add(al);
}
我觉得你的数据可以用下图表示
太原王氏:
┳王柔 ━王机 ┳王默
┃ ┗王沈 ━王浚
┗王泽 ━王昶 ┳王浑 ┳王尚
┃ ┣王济
┃ ┣王澄
┃ ┗王汶
┣王深
┗王湛 ━王承 ━王述 ┳王坦之
┗王祎之
比如你修改了[王湛]这个节点时,包括[王承]的所有级子节点丢失的问题吧
对于这个问题的解决方式,只能是你在修改[王湛]时,自已去处理他的所有子节点的问题,包括该复制的复制,该删除的删除,该增加的增加
另外还一个提示,就是你不要把ArrayList,当成一个object**(指针的指针),必须用深层复制(Clone)
ArrayList l1;......
ArrayList l2;......
foreach(ICloneable obj in l1)
{
l2.Add(obj.Clone());
}
不过我粗略的看了下,好象你的问题可能不是引用的原因引起的,今天太晚了,我明天好好分析一下吧,你先试试别的方法.