我有一个列表,其中包含一个布尔值作为其中一个属性。我需要检查其中每一个是否属实。现在通常LINQ会给出一个很好的干净答案,但是当我使用.NET 2.0时我无法使用它。
如果有更好的方法可以做到这一点,或者我将不得不为每个循环做一个并突然发现错误?
编辑:
似乎我本来可以更清楚一些。我在列表中有一个对象(例如List (Of MyObject)
)。此对象上有一个名为Processed的布尔属性。
我需要检查列表中的所有对象是否都已处理。
所以在LINQ中我会这样做:
if (from o in list where o.processed = false select o).count = 0 then....
答案 0 :(得分:1)
ArrayList
和List<T>
有很多方法可以完成LINQ的工作。他们在LINQ之前一直在那里。
具体来说,请查看Exists
方法。不幸的是我不知道VB语法:)
答案 1 :(得分:1)
使用List<Of Boolean>
,您可以使用Contains()
方法:
If MyList.Contains(false) Then
// at least one false
Else
// all true
End If
答案 2 :(得分:0)
您可以编写自己的通用列表实现,并添加属性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