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

发布于 2024-09-10 14:17:54 字数 361 浏览 4 评论 0原文

我有一个列表,其中一个属性为布尔值。我需要检查每一项是否属实。现在通常 LINQ 会在这里给出一个很好的干净答案,但由于我使用的是 .NET 2.0,所以我无法使用它。

如果有更好的方法来做到这一点,或者我是否必须为每个循环执行一次并在发现错误时突破?

编辑: 看来我本来可以更清楚一点。我在列表中有一个对象(例如List (Of MyObject))。该对象有一个名为 Processed 的布尔属性。

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

所以在 LINQ 中我会这样做: if(从列表中的 o,其中 o.processed = false 选择 o).count = 0 那么...

I have a list with a boolean value as one of the properties. I need to check if every one of these is true. Now normally LINQ would give a nice clean answer here, but as I am using .NET 2.0 I can't use that.

If there a nicer way to do this or am I going to have to do a for each loop and break out on finding a false?

Edit:
Seems I could have been a bit clearer. I have an object in a list (eg List (Of MyObject)). There is a boolean property on this object called Processed.

I need to check that all objects in the list are processed.

So in LINQ I'd do:
if (from o in list where o.processed = false select o).count = 0 then....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ゝ偶尔ゞ 2024-09-17 14:17:54

通过使用 List 您可以使用 Contains() 方法:

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

By using List<Of Boolean> you can use Contains() method:

If MyList.Contains(false) Then
  // at least one false
Else
  // all true
End If
请爱~陌生人 2024-09-17 14:17:54

ArrayListList 有一堆方法,它们的功能与 LINQ 的功能差不多。他们在 LINQ 之前就已经存在了。

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

ArrayList and List<T> has a bunch of methods that does pretty much what LINQ does. They have been there before LINQ.

Specifically, look at the Exists method. Unfortunately I dont know the VB syntax :)

对不⑦ 2024-09-17 14:17:54

您可以编写自己的通用列表实现并添加属性 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

You could write your own generic list implementation an add a property 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文