加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

限制List(Of T)的大小 – VB.NET

发布时间:2020-12-17 00:20:31 所属栏目:大数据 来源:网络整理
导读:我试图限制我的通用列表的大小,以便在它包含一定数量的值后,它将不再添加. 我试图使用List对象的Capacity属性执行此操作,但这似乎不起作用. Dim slotDates As New List(Of Date) slotDates.Capacity = 7 人们会如何建议限制列表的大小? 我试图避免在添加每
我试图限制我的通用列表的大小,以便在它包含一定数量的值后,它将不再添加.

我试图使用List对象的Capacity属性执行此操作,但这似乎不起作用.

Dim slotDates As New List(Of Date)
        slotDates.Capacity = 7

人们会如何建议限制列表的大小?

我试图避免在添加每个对象后检查List的大小.

有几种不同的方法可以将内容添加到List< T>:Add,AddRange,Insert等.

考虑一个继承自Collection< T>的解决方案:

Public Class LimitedCollection(Of T)
    Inherits System.Collections.ObjectModel.Collection(Of T)

    Private _Capacity As Integer
    Public Property Capacity() As Integer
        Get
            Return _Capacity
        End Get
        Set(ByVal value As Integer)
            _Capacity = value
        End Set
    End Property

    Protected Overrides Sub InsertItem(ByVal index As Integer,ByVal item As T)
        If Me.Count = Capacity Then
            Dim message As String = 
                String.Format("List cannot hold more than {0} items",Capacity)
            Throw New InvalidOperationException(message)
        End If
        MyBase.InsertItem(index,item)
    End Sub

End Class

这样,无论您是添加还是插入,都会尊重容量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读