diff --git a/Recyclable.Collections/RecyclableArrayList.cs b/Recyclable.Collections/RecyclableArrayList.cs index 3591ecb..8294b0a 100644 --- a/Recyclable.Collections/RecyclableArrayList.cs +++ b/Recyclable.Collections/RecyclableArrayList.cs @@ -4,7 +4,7 @@ using System.Runtime.CompilerServices; namespace Recyclable.Collections { - public class RecyclableArrayList : IEnumerable, IDisposable + public class RecyclableArrayList : IEnumerable, IList, IDisposable { private static readonly ArrayPool _arrayPool = ArrayPool.Create(); private static readonly IEqualityComparer _equalityComparer = EqualityComparer.Default; @@ -296,15 +296,6 @@ namespace Recyclable.Collections } _count = targetIndex; - - //foreach (var item in source) - //{ - // if (capacity == count) - // { - // } - - // Add(item); - //} } public void Clear() diff --git a/Recyclable.CollectionsTests/RecyclableArrayListTests.cs b/Recyclable.CollectionsTests/RecyclableArrayListTests.cs index db99cc3..66ff6a6 100644 --- a/Recyclable.CollectionsTests/RecyclableArrayListTests.cs +++ b/Recyclable.CollectionsTests/RecyclableArrayListTests.cs @@ -237,5 +237,22 @@ namespace Recyclable.CollectionsTests .And.ContainInConsecutiveOrder(testData) .And.BeEquivalentTo(testData); } + + [Fact] + public void CopyToShouldCopyAllItemsInTheCorrectOrder() + { + // Prepare + var testData = _testData.ToArray(); + var list = new RecyclableArrayList(testData); + int[] yieldedItems = new int[testData.Length]; + + // Act + list.CopyTo(yieldedItems, 0); + + // Validate + _ = yieldedItems.Should().HaveCount(testData.Length) + .And.ContainInConsecutiveOrder(testData) + .And.BeEquivalentTo(testData); + } } }