2010-07-19 64 views
0

我有一個帶有布爾值作爲屬性之一的列表。我需要檢查是否每一個都是真的。現在通常LINQ會在這裏給出一個很好的清晰答案,但是當我使用.NET 2.0時,我無法使用它。快速檢查列表中的所有子項目

如果有更好的方法來做到這一點,或者我將不得不爲每個循環做一個並找出一個錯誤?

編輯: 似乎我本來可以更清楚一點。我在列表中有一個對象(例如List (Of MyObject))。此對象上有一個布爾屬性,稱爲Processed。

我需要檢查是否處理了列表中的所有對象。

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

回答

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 
+0

我有點像這樣,因爲它只用於1我只是寫了一個快速循環來檢查它在一個小函數中,沒有繼承,這正是我試圖不去做的,但似乎是唯一的方法。 – themaninthesuitcase 2010-07-21 08:04:44

1

ArrayListList<T>有一堆的方法,做幾乎LINQ做什麼。他們在LINQ之前一直在那裏。

具體來說,看看Exists的方法。不幸的是我不知道VB語法:)

+0

如何我會執行上述嗎?在LINQ中,我可能會計算一些錯誤的項目並檢查它是否爲0。我會如何使用'List '方法? – themaninthesuitcase 2010-07-19 09:33:49

1

通過使用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

相關問題