Limit the size of List(Of T) - VB.NET

后端 未结 5 1849
無奈伤痛
無奈伤痛 2021-01-18 06:46

I am trying to limit the size of my generic list so that after it contains a certain amount of values, it won\'t add any more.

I am trying to do this using the Capac

5条回答
  •  悲&欢浪女
    2021-01-18 07:03

    There is no built-in way to limit the size of a List(Of T). The Capacity property is merely modifying the size of the underyling buffer, not restricting it.

    If you want to limit the size of the List, you'll need to create a wrapper which checks for invalid size's. For example

    Public Class RestrictedList(Of T)
      Private _list as New List(Of T)
      Private _limit as Integer
      Public Property Limit As Integer 
        Get 
          return _limit
        End Get
        Set 
          _limit = Value
        End Set
      End Property
    
      Public Sub Add(T value) 
        if _list.Count = _limit Then
          Throw New InvalidOperationException("List at limit")
        End If
        _list.Add(value)
      End Sub
    End Class
    

提交回复
热议问题