快速检查列表中的所有子项目
我有一个带有布尔值作为属性之一的列表。我需要检查是否每一个都是真的。现在通常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
ArrayList
和List<T>
有一堆的方法,做几乎LINQ做什么。他们在LINQ之前一直在那里。
具体来说,看看Exists
的方法。不幸的是我不知道VB语法:)
如何我会执行上述吗?在LINQ中,我可能会计算一些错误的项目并检查它是否为0。我会如何使用'List
通过使用List<Of Boolean>
可以使用Contains()
方法:
If MyList.Contains(false) Then
// at least one false
Else
// all true
End If
也许我不太清楚。我有一个'List(Of MyObject)'''MyObject'的属性是一个布尔值,我需要检查这个属性,而不是布尔表的列表 – themaninthesuitcase 2010-07-19 09:42:49
我有点像这样,因为它只用于1我只是写了一个快速循环来检查它在一个小函数中,没有继承,这正是我试图不去做的,但似乎是唯一的方法。 – themaninthesuitcase 2010-07-21 08:04:44