14 instantiations of ImmutableSegmentedList
Microsoft.CodeAnalysis (14)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (6)
76
public static readonly ImmutableSegmentedList<T> Empty =
new
(new SegmentedList<T>());
148
return new
ImmutableSegmentedList
<T>(list);
177
return new
ImmutableSegmentedList
<T>(list);
209
=> new
ImmutableSegmentedList
<TOutput>(_list.ConvertAll(converter));
232
=> new
ImmutableSegmentedList
<T>(_list.FindAll(match));
300
return new
ImmutableSegmentedList
<T>(self._list.GetRange(index, count));
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+PrivateMarshal.cs (4)
26
return new
ImmutableSegmentedList
<T>(list);
35
return new
ImmutableSegmentedList
<T>(list);
44
return new
ImmutableSegmentedList
<T>(list);
49
=> list is not null ? new
ImmutableSegmentedList
<T>(list) : default;
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (4)
126
=> new
ImmutableSegmentedList
<TOutput>(ReadOnlyList.ConvertAll(converter));
144
=> new
ImmutableSegmentedList
<T>(ReadOnlyList.FindAll(match));
196
return new
ImmutableSegmentedList
<T>(ReadOnlyList.GetRange(index, count));
327
_list = new
ImmutableSegmentedList
<T>(ReadOnlyList);
415 references to ImmutableSegmentedList
Microsoft.CodeAnalysis (151)
src\Dependencies\Collections\RoslynImmutableInterlocked.cs (26)
33
public static bool Update<T>(ref
ImmutableSegmentedList
<T> location, Func<
ImmutableSegmentedList
<T>,
ImmutableSegmentedList
<T>> transformer)
38
var
oldValue =
ImmutableSegmentedList
<T>.PrivateMarshal.VolatileRead(in location);
41
var
newValue = transformer(oldValue);
48
var
interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue);
74
public static bool Update<T, TArg>(ref
ImmutableSegmentedList
<T> location, Func<
ImmutableSegmentedList
<T>, TArg,
ImmutableSegmentedList
<T>> transformer, TArg transformerArgument)
79
var
oldValue =
ImmutableSegmentedList
<T>.PrivateMarshal.VolatileRead(in location);
82
var
newValue = transformer(oldValue, transformerArgument);
89
var
interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue);
105
public static
ImmutableSegmentedList
<T> InterlockedExchange<T>(ref
ImmutableSegmentedList
<T> location,
ImmutableSegmentedList
<T> value)
107
return
ImmutableSegmentedList
<T>.PrivateMarshal.InterlockedExchange(ref location, value);
119
public static
ImmutableSegmentedList
<T> InterlockedCompareExchange<T>(ref
ImmutableSegmentedList
<T> location,
ImmutableSegmentedList
<T> value,
ImmutableSegmentedList
<T> comparand)
121
return
ImmutableSegmentedList
<T>.PrivateMarshal.InterlockedCompareExchange(ref location, value, comparand);
133
public static bool InterlockedInitialize<T>(ref
ImmutableSegmentedList
<T> location,
ImmutableSegmentedList
<T> value)
135
return InterlockedCompareExchange(ref location, value, default(
ImmutableSegmentedList
<T>)).IsDefault;
src\Dependencies\Collections\Segmented\ImmutableSegmentedList.cs (15)
16
public static
ImmutableSegmentedList
<T> Create<T>()
17
=>
ImmutableSegmentedList
<T>.Empty;
20
public static
ImmutableSegmentedList
<T> Create<T>(T item)
21
=>
ImmutableSegmentedList
<T>.Empty.Add(item);
24
public static
ImmutableSegmentedList
<T> Create<T>(params T[] items)
25
=>
ImmutableSegmentedList
<T>.Empty.AddRange(items);
28
public static
ImmutableSegmentedList
<T>.Builder CreateBuilder<T>()
29
=>
ImmutableSegmentedList
<T>.Empty.ToBuilder();
32
public static
ImmutableSegmentedList
<T> CreateRange<T>(IEnumerable<T> items)
33
=>
ImmutableSegmentedList
<T>.Empty.AddRange(items);
36
public static
ImmutableSegmentedList
<T> ToImmutableSegmentedList<T>(this IEnumerable<T> source)
38
if (source is
ImmutableSegmentedList
<T> existingList)
41
return
ImmutableSegmentedList
<T>.Empty.AddRange(source);
45
public static
ImmutableSegmentedList
<T> ToImmutableSegmentedList<T>(this
ImmutableSegmentedList
<T>.Builder builder)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (61)
20
/// <para>There are different scenarios best for <see cref="
ImmutableSegmentedList
{T}"/> and others
24
/// <see cref="
ImmutableSegmentedList
{T}"/>:</para>
29
/// <description><see cref="
ImmutableSegmentedList
{T}"/> Complexity</description>
73
internal readonly partial struct ImmutableSegmentedList<T> : IImmutableList<T>, IReadOnlyList<T>, IList<T>, IList, IEquatable<
ImmutableSegmentedList
<T>>
76
public static readonly
ImmutableSegmentedList
<T> Empty = new(new SegmentedList<T>());
114
public static bool operator ==(
ImmutableSegmentedList
<T> left,
ImmutableSegmentedList
<T> right)
117
public static bool operator !=(
ImmutableSegmentedList
<T> left,
ImmutableSegmentedList
<T> right)
120
public static bool operator ==(
ImmutableSegmentedList
<T>? left,
ImmutableSegmentedList
<T>? right)
123
public static bool operator !=(
ImmutableSegmentedList
<T>? left,
ImmutableSegmentedList
<T>? right)
129
var
self = this;
141
public
ImmutableSegmentedList
<T> Add(T value)
143
var
self = this;
161
public
ImmutableSegmentedList
<T> AddRange(IEnumerable<T> items)
163
var
self = this;
171
if (items is
ImmutableSegmentedList
<T> immutableList)
173
else if (items is
ImmutableSegmentedList
<T>.Builder builder)
201
public
ImmutableSegmentedList
<T> Clear()
208
public
ImmutableSegmentedList
<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter)
231
public
ImmutableSegmentedList
<T> FindAll(Predicate<T> match)
257
var
self = this;
272
var
self = this;
293
public
ImmutableSegmentedList
<T> GetRange(int index, int count)
295
var
self = this;
310
public
ImmutableSegmentedList
<T> Insert(int index, T item)
312
var
self = this;
325
public
ImmutableSegmentedList
<T> InsertRange(int index, IEnumerable<T> items)
327
var
self = this;
341
var
self = this;
361
public
ImmutableSegmentedList
<T> Remove(T value)
363
var
self = this;
373
public
ImmutableSegmentedList
<T> Remove(T value, IEqualityComparer<T>? equalityComparer)
375
var
self = this;
385
public
ImmutableSegmentedList
<T> RemoveAll(Predicate<T> match)
395
public
ImmutableSegmentedList
<T> RemoveAt(int index)
404
public
ImmutableSegmentedList
<T> RemoveRange(IEnumerable<T> items)
409
var
self = this;
428
public
ImmutableSegmentedList
<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer)
433
var
self = this;
452
public
ImmutableSegmentedList
<T> RemoveRange(int index, int count)
454
var
self = this;
468
public
ImmutableSegmentedList
<T> Replace(T oldValue, T newValue)
470
var
self = this;
482
public
ImmutableSegmentedList
<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
484
var
self = this;
496
public
ImmutableSegmentedList
<T> Reverse()
498
var
self = this;
508
public
ImmutableSegmentedList
<T> Reverse(int index, int count)
516
public
ImmutableSegmentedList
<T> SetItem(int index, T value)
525
public
ImmutableSegmentedList
<T> Sort()
527
var
self = this;
539
public
ImmutableSegmentedList
<T> Sort(IComparer<T>? comparer)
541
var
self = this;
553
public
ImmutableSegmentedList
<T> Sort(Comparison<T> comparison)
560
var
self = this;
572
public
ImmutableSegmentedList
<T> Sort(int index, int count, IComparer<T>? comparer)
592
return obj is
ImmutableSegmentedList
<T> other
596
public bool Equals(
ImmutableSegmentedList
<T> other)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (5)
23
internal Builder(
ImmutableSegmentedList
<T> list)
80
public
ImmutableSegmentedList
<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter)
103
public
ImmutableSegmentedList
<T> FindAll(Predicate<T> match)
143
public
ImmutableSegmentedList
<T> GetRange(int index, int count)
219
public
ImmutableSegmentedList
<T> ToImmutable()
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+PrivateMarshal.cs (12)
20
internal static
ImmutableSegmentedList
<T> VolatileRead(in
ImmutableSegmentedList
<T> location)
29
internal static
ImmutableSegmentedList
<T> InterlockedExchange(ref
ImmutableSegmentedList
<T> location,
ImmutableSegmentedList
<T> value)
38
internal static
ImmutableSegmentedList
<T> InterlockedCompareExchange(ref
ImmutableSegmentedList
<T> location,
ImmutableSegmentedList
<T> value,
ImmutableSegmentedList
<T> comparand)
48
internal static
ImmutableSegmentedList
<T> AsImmutableSegmentedList(SegmentedList<T>? list)
51
/// <inheritdoc cref="SegmentedCollectionsMarshal.AsSegmentedList{T}(
ImmutableSegmentedList
{T})"/>
52
internal static SegmentedList<T>? AsSegmentedList(
ImmutableSegmentedList
<T> list)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (7)
21
private
ImmutableSegmentedList
<T> _list;
29
internal ValueBuilder(
ImmutableSegmentedList
<T> list)
76
var
originalList = RoslynImmutableInterlocked.InterlockedExchange(ref _list, default);
125
public readonly
ImmutableSegmentedList
<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter)
143
public readonly
ImmutableSegmentedList
<T> FindAll(Predicate<T> match)
191
public
ImmutableSegmentedList
<T> GetRange(int index, int count)
325
public
ImmutableSegmentedList
<T> ToImmutable()
src\Dependencies\Collections\Segmented\ImmutableSegmentedListExtensions.cs (9)
17
public static bool All<T>(this
ImmutableSegmentedList
<T> immutableList, Func<T, bool> predicate)
33
public static bool Any<T>(this
ImmutableSegmentedList
<T> immutableList)
41
public static bool Any<T>(this
ImmutableSegmentedList
<T>.Builder builder)
49
public static bool Any<T>(this
ImmutableSegmentedList
<T> immutableList, Func<T, bool> predicate)
65
public static T Last<T>(this
ImmutableSegmentedList
<T> immutableList)
74
public static T Last<T>(this
ImmutableSegmentedList
<T>.Builder builder)
86
public static T Last<T>(this
ImmutableSegmentedList
<T> immutableList, Func<T, bool> predicate)
103
public static IEnumerable<TResult> Select<T, TResult>(this
ImmutableSegmentedList
<T> immutableList, Func<T, TResult> selector)
120
public static int BinarySearch<TElement, TValue>(this
ImmutableSegmentedList
<TElement> array, TValue value, Func<TElement, TValue, int> comparer)
src\Dependencies\Collections\Segmented\SegmentedCollectionsMarshal.cs (16)
98
/// Gets an <see cref="
ImmutableSegmentedList
{T}"/> value wrapping the input <see cref="SegmentedList{T}"/>.
101
/// <param name="list">The input segmented list to wrap in the returned <see cref="
ImmutableSegmentedList
{T}"/> value.</param>
102
/// <returns>An <see cref="
ImmutableSegmentedList
{T}"/> value wrapping <paramref name="list"/>.</returns>
106
/// list, and that it won't be modified once the returned <see cref="
ImmutableSegmentedList
{T}"/> value starts
108
/// <see cref="
ImmutableSegmentedList
{T}"/> values to change after its creation.
111
/// If <paramref name="list"/> is <see langword="null"/>, the returned <see cref="
ImmutableSegmentedList
{T}"/> value
112
/// will be uninitialized (i.e. its <see cref="
ImmutableSegmentedList
{T}.IsDefault"/> property will be
116
public static
ImmutableSegmentedList
<T> AsImmutableSegmentedList<T>(SegmentedList<T>? list)
117
=>
ImmutableSegmentedList
<T>.PrivateMarshal.AsImmutableSegmentedList(list);
120
/// Gets the underlying <see cref="SegmentedList{T}"/> for an input <see cref="
ImmutableSegmentedList
{T}"/> value.
122
/// <typeparam name="T">The type of elements in the input <see cref="
ImmutableSegmentedList
{T}"/> value.</typeparam>
123
/// <param name="list">The input <see cref="
ImmutableSegmentedList
{T}"/> value to get the underlying <see cref="SegmentedList{T}"/> from.</param>
129
/// don't expect the contents of the <see cref="
ImmutableSegmentedList
{T}"/> value to change.
132
/// If <paramref name="list"/> is uninitialized (i.e. its <see cref="
ImmutableSegmentedList
{T}.IsDefault"/> property is
136
public static SegmentedList<T>? AsSegmentedList<T>(
ImmutableSegmentedList
<T> list)
137
=>
ImmutableSegmentedList
<T>.PrivateMarshal.AsSegmentedList(list);
Microsoft.CodeAnalysis.UnitTests (264)
Collections\ImmutableListTestBase.cs (86)
28
internal abstract IReadOnlyList<T> GetListQuery<T>(
ImmutableSegmentedList
<T> list);
30
private protected abstract
ImmutableSegmentedList
<TOutput> ConvertAllImpl<T, TOutput>(
ImmutableSegmentedList
<T> list, Converter<T, TOutput> converter);
32
private protected abstract void ForEachImpl<T>(
ImmutableSegmentedList
<T> list, Action<T> action);
34
private protected abstract
ImmutableSegmentedList
<T> GetRangeImpl<T>(
ImmutableSegmentedList
<T> list, int index, int count);
36
private protected abstract void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, T[] array);
38
private protected abstract void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, T[] array, int arrayIndex);
40
private protected abstract void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, int index, T[] array, int arrayIndex, int count);
42
private protected abstract bool ExistsImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match);
44
private protected abstract T? FindImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match);
46
private protected abstract
ImmutableSegmentedList
<T> FindAllImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match);
48
private protected abstract int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match);
50
private protected abstract int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, Predicate<T> match);
52
private protected abstract int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, int count, Predicate<T> match);
54
private protected abstract T? FindLastImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match);
56
private protected abstract int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match);
58
private protected abstract int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, Predicate<T> match);
60
private protected abstract int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, int count, Predicate<T> match);
62
private protected abstract bool TrueForAllImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test);
64
private protected abstract int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, T item);
66
private protected abstract int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, T item, IComparer<T>? comparer);
68
private protected abstract int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, int index, int count, T item, IComparer<T>? comparer);
74
CopyToImpl(
ImmutableSegmentedList
<int>.Empty, array);
75
CopyToImpl(
ImmutableSegmentedList
<int>.Empty, array, 0);
76
CopyToImpl(
ImmutableSegmentedList
<int>.Empty, 0, array, 0, 0);
77
((ICollection)this.GetListQuery(
ImmutableSegmentedList
<int>.Empty)).CopyTo(array, 0);
83
var
list = ImmutableSegmentedList.Create(1, 2);
114
ForEachImpl(
ImmutableSegmentedList
<int>.Empty, n => { throw ExceptionUtilities.Unreachable(); });
116
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(5, 3));
134
Assert.False(ExistsImpl(
ImmutableSegmentedList
<int>.Empty, n => true));
136
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(1, 5));
144
Assert.True(FindAllImpl(
ImmutableSegmentedList
<int>.Empty, n => true).IsEmpty);
145
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(new[] { 2, 3, 4, 5, 6 });
146
var
actual = FindAllImpl(list, n => n % 2 == 1);
154
Assert.Equal(0, FindImpl(
ImmutableSegmentedList
<int>.Empty, n => true));
155
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(new[] { 2, 3, 4, 5, 6 });
162
Assert.Equal(0, FindLastImpl(
ImmutableSegmentedList
<int>.Empty, n => { throw ExceptionUtilities.Unreachable(); }));
163
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(new[] { 2, 3, 4, 5, 6 });
170
Assert.Equal(-1, FindIndexImpl(
ImmutableSegmentedList
<int>.Empty, n => true));
171
Assert.Equal(-1, FindIndexImpl(
ImmutableSegmentedList
<int>.Empty, 0, n => true));
172
Assert.Equal(-1, FindIndexImpl(
ImmutableSegmentedList
<int>.Empty, 0, 0, n => true));
175
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5)));
224
Assert.Equal(-1, FindLastIndexImpl(
ImmutableSegmentedList
<int>.Empty, n => true));
225
Assert.Equal(-1, FindLastIndexImpl(
ImmutableSegmentedList
<int>.Empty, 0, n => true));
226
Assert.Equal(-1, FindLastIndexImpl(
ImmutableSegmentedList
<int>.Empty, 0, 0, n => true));
229
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5)));
332
Assert.True(ConvertAllImpl<int, float>(
ImmutableSegmentedList
<int>.Empty, n => n).IsEmpty);
333
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(5, 10));
336
var
actual = ConvertAllImpl(list, converter);
343
Assert.True(GetRangeImpl(
ImmutableSegmentedList
<int>.Empty, 0, 0).IsEmpty);
344
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(5, 10));
352
var
actual = GetRangeImpl(list, index, count);
361
Assert.True(TrueForAllImpl(
ImmutableSegmentedList
<int>.Empty, n => false));
362
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(5, 10));
371
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(5, 10));
382
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(5, 10));
396
Assert.Throws<ArgumentNullException>("comparison", () => this.SortTestHelper(
ImmutableSegmentedList
<int>.Empty, (Comparison<int>)null!));
403
ImmutableSegmentedList
<int>.Empty,
404
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(1, 50)),
405
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(1, 50).Reverse()),
408
foreach (
var
scenario in scenarios)
451
var
query = basis.ToImmutableSegmentedList();
493
var
query = inputData.ToImmutableSegmentedList();
527
private protected abstract void RemoveAllTestHelper<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test);
529
private protected abstract void ReverseTestHelper<T>(
ImmutableSegmentedList
<T> list, int index, int count);
531
private protected abstract List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list);
533
private protected abstract List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, Comparison<T> comparison);
535
private protected abstract List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, IComparer<T>? comparer);
537
private protected abstract List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, int index, int count, IComparer<T>? comparer);
546
/// Asserts that the <see cref="
ImmutableSegmentedList
{T}"/> or <see cref="
ImmutableSegmentedList
{T}.Builder"/>'s
569
private void TrueForAllTestHelper<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test)
Collections\ImmutableSegmentedListBuilderTest.cs (57)
28
ImmutableSegmentedList
<string>.Builder builder = ImmutableSegmentedList.CreateBuilder<string>();
35
var builder =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
44
var
list = builder.ToImmutable();
56
var
list =
ImmutableSegmentedList
<int>.Empty.Add(1);
67
var
list2 = builder.ToImmutable();
82
var mutable =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
83
var
immutable1 = mutable.ToImmutable();
87
var
immutable2 = mutable.ToImmutable();
96
var builder =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(1, 10)).ToBuilder();
118
var
collection =
ImmutableSegmentedList
<int>.Empty.Add(1);
123
var
newImmutable = builder.ToImmutable();
131
var mutable =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
144
var mutable =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
161
var mutable =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
175
var mutable =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
207
var mutable =
ImmutableSegmentedList
<int>.Empty.ToBuilder();
359
ImmutableSegmentedList
<string>.Builder builder = ImmutableSegmentedList.CreateBuilder<string>();
379
var
list = new[] { 1, 2, 3 }.ToImmutableSegmentedList();
380
var builder = new
ImmutableSegmentedList
<int>.Builder(list);
395
var
list = new[] { 1, 2, 3 }.ToImmutableSegmentedList();
396
var builder = new
ImmutableSegmentedList
<int>.Builder(list);
404
ImmutableSegmentedList
<int>.Builder builder = ImmutableSegmentedList.CreateBuilder<int>();
409
var
list = builder.ToImmutableSegmentedList();
422
ImmutableSegmentedList
<int>.Builder? nullBuilder = null;
428
return
ImmutableSegmentedList
<T>.Empty.AddRange(contents).ToBuilder();
431
private protected override void RemoveAllTestHelper<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test)
442
private protected override void ReverseTestHelper<T>(
ImmutableSegmentedList
<T> list, int index, int count)
451
internal override IReadOnlyList<T> GetListQuery<T>(
ImmutableSegmentedList
<T> list)
456
private protected override
ImmutableSegmentedList
<TOutput> ConvertAllImpl<T, TOutput>(
ImmutableSegmentedList
<T> list, Converter<T, TOutput> converter)
459
private protected override void ForEachImpl<T>(
ImmutableSegmentedList
<T> list, Action<T> action)
462
private protected override
ImmutableSegmentedList
<T> GetRangeImpl<T>(
ImmutableSegmentedList
<T> list, int index, int count)
465
private protected override void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, T[] array)
468
private protected override void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, T[] array, int arrayIndex)
471
private protected override void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, int index, T[] array, int arrayIndex, int count)
474
private protected override bool ExistsImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
477
private protected override T? FindImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
481
private protected override
ImmutableSegmentedList
<T> FindAllImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
484
private protected override int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
487
private protected override int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, Predicate<T> match)
490
private protected override int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, int count, Predicate<T> match)
493
private protected override T? FindLastImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
497
private protected override int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
500
private protected override int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, Predicate<T> match)
503
private protected override int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, int count, Predicate<T> match)
506
private protected override bool TrueForAllImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test)
509
private protected override int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, T item)
512
private protected override int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, T item, IComparer<T>? comparer)
515
private protected override int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, int index, int count, T item, IComparer<T>? comparer)
518
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list)
525
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, Comparison<T> comparison)
532
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, IComparer<T>? comparer)
539
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, int index, int count, IComparer<T>? comparer)
Collections\ImmutableSegmentedListTest.cs (112)
43
var
actual =
ImmutableSegmentedList
<int>.Empty;
107
var
empty =
ImmutableSegmentedList
<GenericParameterHelper?>.Empty;
108
Assert.True(IsSame(empty,
ImmutableSegmentedList
<GenericParameterHelper>.Empty));
126
var
list =
ImmutableSegmentedList
<int>.Empty;
139
var
bulkList =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(1, 10).Select(i => i * 10));
146
var
list =
ImmutableSegmentedList
<int>.Empty;
149
list = list.AddRange(
ImmutableSegmentedList
<int>.Empty.AddRange(new[] { 6, 7, 8 }));
151
list = list.AddRange(
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(9, 1000)));
158
var
list =
ImmutableSegmentedList
<int>.Empty;
159
ImmutableSegmentedList
<int>.Builder builder = ImmutableSegmentedList.CreateBuilder<int>();
170
var
emptyList = ImmutableSegmentedList.Create<string>();
176
var
nonEmptyListDefaultComparer = ImmutableSegmentedList.Create("5");
193
var
list =
ImmutableSegmentedList
<int>.Empty;
245
var
list =
ImmutableSegmentedList
<int>.Empty;
269
var
list = ImmutableSegmentedList.Create(1);
278
var
list =
ImmutableSegmentedList
<int>.Empty;
294
var
list =
ImmutableSegmentedList
<int>.Empty;
295
var
nonEmptyList = ImmutableSegmentedList.Create(1);
301
list = list.InsertRange(2,
ImmutableSegmentedList
<int>.Empty);
302
list = list.InsertRange(3,
ImmutableSegmentedList
<int>.Empty.InsertRange(0, Enumerable.Range(4, 100)));
312
var
list =
ImmutableSegmentedList
<GenericParameterHelper?>.Empty;
332
var
collection = ImmutableSegmentedList.Create(1, 2, 3);
333
var
modified = collection.Remove(2, null);
345
ImmutableSegmentedList
<int> list =
ImmutableSegmentedList
<int>.Empty;
369
System.Collections.Immutable.IImmutableList<int> list2 =
ImmutableSegmentedList
<int>.Empty;
396
var
list =
ImmutableSegmentedList
<int>.Empty;
415
var
list =
ImmutableSegmentedList
<int>.Empty;
422
var
list =
ImmutableSegmentedList
<int>.Empty;
450
var
list =
ImmutableSegmentedList
<string>.Empty;
473
var
list = ImmutableSegmentedList.CreateRange(Enumerable.Range(1, 3));
525
var
list =
ImmutableSegmentedList
<int>.Empty.Add(3).Add(5).Add(8);
534
list =
ImmutableSegmentedList
<int>.Empty.Add(3).Add(3).Add(5);
544
var
list = ImmutableSegmentedList.Create(new Person { Name = "Andrew", Age = 20 });
546
var
updatedList = list.Replace(newAge, newAge, new NameOnlyEqualityComparer());
562
Assert.Throws<ArgumentException>("oldValue", () =>
ImmutableSegmentedList
<int>.Empty.Replace(5, 3));
568
Assert.False(
ImmutableSegmentedList
<int>.Empty.Equals(null));
569
Assert.False(
ImmutableSegmentedList
<int>.Empty.Equals("hi"));
570
Assert.True(
ImmutableSegmentedList
<int>.Empty.Equals(
ImmutableSegmentedList
<int>.Empty));
571
Assert.False(
ImmutableSegmentedList
<int>.Empty.Add(3).Equals(
ImmutableSegmentedList
<int>.Empty.Add(3)));
579
ImmutableSegmentedList
<string> list = ImmutableSegmentedList.Create<string>();
595
ImmutableSegmentedList
<string> list = new[] { "a", "b" }.ToImmutableSegmentedList();
605
var
list = ImmutableSegmentedList.Create("a");
612
Assert.Throws<ArgumentNullException>("match", () =>
ImmutableSegmentedList
<int>.Empty.RemoveAll(null!));
618
Assert.True(
ImmutableSegmentedList
<int>.Empty.RemoveRange(0, 0).IsEmpty);
620
var
list = ImmutableSegmentedList.Create(1, 2, 3);
632
var
list = ImmutableSegmentedList.Create(1, 2, 3);
633
var
removed2eq = list.RemoveRange(new[] { 2 }, null);
641
var
list = ImmutableSegmentedList.Create(1, 2, 3);
644
ImmutableSegmentedList
<int> removed2 = list.RemoveRange(new[] { 2 });
648
ImmutableSegmentedList
<int> removed13 = list.RemoveRange(new[] { 1, 3, 5 });
656
var
listWithDuplicates = ImmutableSegmentedList.Create(1, 2, 2, 3);
667
var
list = ImmutableSegmentedList.Create("a");
689
var
collection = ImmutableSegmentedList.Create(1);
714
var
emptyList = ImmutableSegmentedList.Create<int>();
717
var
populatedList = ImmutableSegmentedList.Create(3, 2, 1);
724
var
emptyList = ImmutableSegmentedList.Create<int>();
729
var
listOfOne = emptyList.Add(5);
773
ImmutableSegmentedList
<double> list = ImmutableSegmentedList.Create<double>(1, 2, 3);
815
var
list = new[] { 1, 2, 3 }.ToImmutableSegmentedList();
830
var
list = new[] { 1, 2, 3 }.ToImmutableSegmentedList();
837
return
ImmutableSegmentedList
<T>.Empty.AddRange(contents);
840
private protected override void RemoveAllTestHelper<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test)
844
var
actual = list.RemoveAll(test);
848
private protected override void ReverseTestHelper<T>(
ImmutableSegmentedList
<T> list, int index, int count)
852
var
actual = list.Reverse(index, count);
856
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list)
861
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, Comparison<T> comparison)
866
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, IComparer<T>? comparer)
871
private protected override List<T> SortTestHelper<T>(
ImmutableSegmentedList
<T> list, int index, int count, IComparer<T>? comparer)
876
internal override IReadOnlyList<T> GetListQuery<T>(
ImmutableSegmentedList
<T> list)
881
private protected override
ImmutableSegmentedList
<TOutput> ConvertAllImpl<T, TOutput>(
ImmutableSegmentedList
<T> list, Converter<T, TOutput> converter)
884
private protected override void ForEachImpl<T>(
ImmutableSegmentedList
<T> list, Action<T> action)
887
private protected override
ImmutableSegmentedList
<T> GetRangeImpl<T>(
ImmutableSegmentedList
<T> list, int index, int count)
890
private protected override void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, T[] array)
893
private protected override void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, T[] array, int arrayIndex)
896
private protected override void CopyToImpl<T>(
ImmutableSegmentedList
<T> list, int index, T[] array, int arrayIndex, int count)
899
private protected override bool ExistsImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
902
private protected override T? FindImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
906
private protected override
ImmutableSegmentedList
<T> FindAllImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
909
private protected override int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
912
private protected override int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, Predicate<T> match)
915
private protected override int FindIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, int count, Predicate<T> match)
918
private protected override T? FindLastImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
922
private protected override int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> match)
925
private protected override int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, Predicate<T> match)
928
private protected override int FindLastIndexImpl<T>(
ImmutableSegmentedList
<T> list, int startIndex, int count, Predicate<T> match)
931
private protected override bool TrueForAllImpl<T>(
ImmutableSegmentedList
<T> list, Predicate<T> test)
934
private protected override int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, T item)
937
private protected override int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, T item, IComparer<T>? comparer)
940
private protected override int BinarySearchImpl<T>(
ImmutableSegmentedList
<T> list, int index, int count, T item, IComparer<T>? comparer)
Collections\ImmutablesTestBase.cs (2)
55
if (first is
ImmutableSegmentedList
<T> firstSegmented
56
&& second is
ImmutableSegmentedList
<T> secondSegmented)
Collections\IndexOfTests.cs (4)
50
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5)));
118
var
list =
ImmutableSegmentedList
<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5)));
Collections\SegmentedCollectionsMarshalTests.cs (3)
440
ImmutableSegmentedList
<T> immutableList = SegmentedCollectionsMarshal.AsImmutableSegmentedList(list);
483
SegmentedList<T>? list = SegmentedCollectionsMarshal.AsSegmentedList(
ImmutableSegmentedList
<T>.Empty);
506
ImmutableSegmentedList
<T> immutableList = ImmutableSegmentedList.Create(new T[17]);