题
我倾向于使用结构的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]);
}
不隶属于 StackOverflow