diff --git a/Xledger.Collections.Test/TestImmArray.cs b/Xledger.Collections.Test/TestImmArray.cs index 3b7f673..0771ac7 100644 --- a/Xledger.Collections.Test/TestImmArray.cs +++ b/Xledger.Collections.Test/TestImmArray.cs @@ -161,6 +161,16 @@ public void TestFind() { Assert.Equal(Array.Find(arr, pred), imm.Find(pred)); } + [Fact] + public void TestSpan() { + var imm = Enumerable.Range(-1, 100).ToArray().ToImmArray(); + var span = imm.Span; + Assert.Equal(imm.Length, span.Length); + for (int i = 0; i < imm.Length; i++) { + Assert.Equal(imm[i], span[i]); + } + } + public record Employee(int Id, string Name, decimal Salary); } diff --git a/Xledger.Collections/ImmArray.cs b/Xledger.Collections/ImmArray.cs index d9caad4..0ba1c2c 100644 --- a/Xledger.Collections/ImmArray.cs +++ b/Xledger.Collections/ImmArray.cs @@ -55,6 +55,8 @@ public ImmArray(IEnumerable data) { } } + public ReadOnlySpan Span => this.data; + /// public T this[int index] => this.data[index];