我如何循环winforms的arraylist?

时间:2011-12-16 15:35:45

标签: arrays winforms arraylist

我目前正在开发一个Windows窗体应用程序,我有一个包含notificationForms的arraylist notificationList。

如何使用for循环遍历arrayList中的每个表单以检查表单是否通过isDisposed属性处理?

int formDisposed = 0;  

for (int i = 0; i < notificationList.Count; i++)
{
    if(notificationList.?????.IsDisposed == true)
    {
      formDisposed ++;
    }
}

谢谢!

2 个答案:

答案 0 :(得分:0)

通常使用

if(notificationList[i].IsDisposed)

如果由于某种原因您没有此选项:将以下行添加到.cs文件

using System.Data;

和Syste.Data和Syste.Data.DataSetExtensions使您可以访问xxx.ElementAt(i)方法。

您也可以使用foreach:

int formDisposed = 0;  

foreach (Form f in notificationList)
{
    if(f.IsDisposed)
      formDisposed ++;
}

答案 1 :(得分:0)

ArrayLists可以使用方括号(notificationList [i])进行索引,但如果没有对您的类型进行强制转换,这将无法工作。 ArrayList返回Object类型,Object不实现IsDisposed。您可能需要考虑使用通用控件列表(List&lt; Control&gt;),它可以工作相同但不需要强制转换。