快速检查列表中的所有子项目

快速检查列表中的所有子项目

问题描述:

我有一个带有布尔值作为属性之一的列表。我需要检查是否每一个都是真的。现在通常LINQ会在这里给出一个很好的清晰答案,但是当我使用.NET 2.0时,我无法使用它。快速检查列表中的所有子项目

如果有更好的方法来做到这一点,或者我将不得不为每个循环做一个并找出一个错误?

编辑: 似乎我本来可以更清楚一点。我在列表中有一个对象(例如List (Of MyObject))。此对象上有一个布尔属性,称为Processed。

我需要检查是否处理了列表中的所有对象。

所以在LINQ我会怎么做: if (from o in list where o.processed = false select o).count = 0 then....

你可以写自己的泛型列表实现的IsProcessedCompletely添加属性:

Public Class My_Class 
     Public Property IsProcessed() As Boolean 
      Get 
      End Get 
      Set(ByVal value As Boolean) 
      End Set 
     End Property 
    End Class 

    Public Class My_List 
     Inherits List(Of My_Class) 

     Public ReadOnly Property IsProcessedCompletely() As Boolean 
      Get 
       Dim enumerator As List(Of My_Class).Enumerator = MyBase.GetEnumerator 
       While enumerator.MoveNext 
        If Not enumerator.Current.IsProcessed Then 
         Return False 
        End If 
       End While 
       Return True 
      End Get 
     End Property 
    End Class 
+0

我有点像这样,因为它只用于1我只是写了一个快速循环来检查它在一个小函数中,没有继承,这正是我试图不去做的,但似乎是唯一的方法。 – themaninthesuitcase 2010-07-21 08:04:44

ArrayListList<T>有一堆的方法,做几乎LINQ做什么。他们在LINQ之前一直在那里。

具体来说,看看Exists的方法。不幸的是我不知道VB语法:)

+0

如何我会执行上述吗?在LINQ中,我可能会计算一些错误的项目并检查它是否为0。我会如何使用'List '方法? – themaninthesuitcase 2010-07-19 09:33:49

通过使用List<Of Boolean>可以使用Contains()方法:

If MyList.Contains(false) Then 
    // at least one false 
Else 
    // all true 
End If 
+0

也许我不太清楚。我有一个'List(Of MyObject)'''MyObject'的属性是一个布尔值,我需要检查这个属性,而不是布尔表的列表 – themaninthesuitcase 2010-07-19 09:42:49