2010-07-19 2 views
0

У меня есть список с логическим значением как одно из свойств. Мне нужно проверить, верно ли каждое из них. Теперь нормально LINQ даст хороший чистый ответ здесь, но поскольку я использую .NET 2.0, я не могу это использовать.Быстрая проверка всех подписок в списке

Если есть более хороший способ сделать это, или мне нужно будет сделать для каждого цикла и вырваться на поиск ложных данных?

Редактировать: Кажется, я мог бы быть немного яснее. У меня есть объект в списке (например, List (Of MyObject)). На этом объекте называется обработанное логическое свойство.

Мне нужно проверить, что все объекты в списке обработаны.

Так в 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

1

ArrayList и List<T> имеет кучу методов, что делает довольно много, что делает LINQ. Они были там до LINQ.

В частности, посмотрите на метод Exists. К сожалению, я не знаю VB синтаксис :)

+0

Как я бы выполнил вышеописанное? В LINQ я, вероятно, сделаю подсчет элементов, которые являются ложными, и проверьте, что это 0. Что мне делать, используя методы «List »? – themaninthesuitcase

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

Смежные вопросы