我倾向于使用结构的ArrayList。它是然后通过具有一个foreach列表很容易循环。

我的问题是我不能使用foreach来修改结构内容和必须使用一个用于和杂乱类型转换。

((dataStructure)files[x]).name = here;

有一个整洁的方式做到这一点?

有帮助吗?

解决方案

我知道这听起来很简单,但 只是说没有可变的值类型

他们差不多的从不的正确解决问题的方法。有一个的非常的几个例外,但类是几乎的总是的路要走。

此外,如果你真的使用ArrayList那么你就已经招致拆箱费用...(如康拉德说,如果你可以使用.NET 2.0,然后使用泛型。)

如果你真的坚持使用可变的结构,然后用一个for循环,而不是foreach。但请,请无论如何改变类。

其他提示

是的,有:不要使用无类型ArrayList,这些类型弃用,取而代之的泛型类型System.Collections.Generic的。你的情况: List<T>

您还不能连同foreach循环用它来修改结构值,但至少你没有投。

使用的通用版本ArrayList的:List<DataStructure>

本办法的事情看起来好多了:

files[x].name = here;

是,存在这样的情况也List <T>是没有用的。在这些情况下,手动作品最古老的伎俩。相反foreach的,你应该使用while循环:

while (listItem.Count >0)
{
//do operation with 0th element of List Item always like
 deletefunc(lisItem[0]);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top