diff --git a/Recyclable.Collections/RecyclableList.cs b/Recyclable.Collections/RecyclableList.cs
index 4593fd6..db0cfcd 100644
--- a/Recyclable.Collections/RecyclableList.cs
+++ b/Recyclable.Collections/RecyclableList.cs
@@ -190,12 +190,12 @@ namespace Recyclable.Collections
}
}
- internal int _count;
- public int Count
- {
- get => _count;
- set
- {
+ internal int _count;
+ public int Count
+ {
+ get => _count;
+ set
+ {
if (_count != value)
{
if (value > _capacity)
@@ -206,10 +206,26 @@ namespace Recyclable.Collections
_count = value;
_version++;
}
- }
- }
+ }
+ }
- public bool IsReadOnly => false;
+ ///
+ /// Ensures that the capacity of this list is at least the specified value.
+ ///
+ /// The minimum capacity to ensure.
+ /// The new capacity of the list.
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public int EnsureCapacity(int capacity)
+ {
+ if (capacity > _capacity)
+ {
+ _capacity = RecyclableListHelpers.EnsureCapacity(this, _count, checked((int)BitOperations.RoundUpToPowerOf2((uint)capacity)));
+ }
+
+ return _capacity;
+ }
+
+ public bool IsReadOnly => false;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Add(T item)