在C#中,我使用结构创建了ArrayList.所以它创建了多维数组列表.
public struct ParameterValues { public ArrayList al; }; ArrayList alCombined = new ArrayList(); for(int i=0; i < CONDITION , i++) alCombined.Add(obj.pValue.al);
尺寸ArrayList alCombined
取决于条件.如果它是1,则创建1-D arraylist.其他多维Arraylist正在创建.
现在为了访问alCombined的元素,我正在对它进行类型转换和访问,例如
(((ArrayList)al[i])[j])
但是如果它是一维的arraylist,那么因为无法将类型转换为Arraylist而发生错误.
所以我需要一个解决方案,或者如何找到它的单/多维arraylist.仅供参考:它不应该依赖于CONDITION变量.如果d条件不止一个,那么它肯定是多维的.
提前致谢.
实际上没有"多维ArrayList"这样的东西.ArrayLists
没有特定的元素类型.你可能有一个整数元素,另一个是字符串,另一个是一个int[]
,另一个是它ArrayList
自己.
关于您的代码的一些建议:
可变结构是一个坏主意.避免他们.有可能你首先不想要一个结构体,而且可变结构可能会导致各种意外行为.
公共领域是个坏主意.避免他们.字段是实现细节,不应该是API的一部分.
ArrayList
实际上已弃用 - 请改用通用集合.这将使类型信息更加清晰.
您应该设计数据结构,以免陷入这种情况.理想情况下,代码中应该执行的执行时类型检查很少.也许如果你能给我们更多关于你想要实现的信息,我们可以帮助你重新设计它.