当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中找到arraylist是单维还是多维的?

如何解决《如何在C#中找到arraylist是单维还是多维的?》经验,为你挑选了1个好方法。

在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条件不止一个,那么它肯定是多维的.

提前致谢.



1> Jon Skeet..:

实际上没有"多维ArrayList"这样的东西.ArrayLists没有特定的元素类型.你可能有一个整数元素,另一个是字符串,另一个是一个int[],另一个是它ArrayList自己.

关于您的代码的一些建议:

可变结构是一个坏主意.避免他们.有可能你首先不想要一个结构体,而且可变结构可能会导致各种意外行为.

公共领域是个坏主意.避免他们.字段是实现细节,不应该是API的一部分.

ArrayList实际上已弃用 - 请改用通用集合.这将使类型信息更加清晰.

您应该设计数据结构,以免陷入这种情况.理想情况下,代码中应该执行的执行时类型检查很少.也许如果你能给我们更多关于你想要实现的信息,我们可以帮助你重新设计它.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有