diff --git a/Rx.NET/Source/Directory.build.props b/Rx.NET/Source/Directory.build.props
index 5861aeefb9..c0956a2aa9 100644
--- a/Rx.NET/Source/Directory.build.props
+++ b/Rx.NET/Source/Directory.build.props
@@ -61,7 +61,7 @@
true
-
- $(NoWarn);CA1001;CA2213;IDE0056;IDE0057
+ $(NoWarn);CA1001;CA2213;CA1510;CA1513;IDE0056;IDE0057;IDE0290;IDE0305
diff --git a/Rx.NET/Source/src/Microsoft.Reactive.Testing/ColdObservable.cs b/Rx.NET/Source/src/Microsoft.Reactive.Testing/ColdObservable.cs
index fccbb2d0fc..1721d31554 100644
--- a/Rx.NET/Source/src/Microsoft.Reactive.Testing/ColdObservable.cs
+++ b/Rx.NET/Source/src/Microsoft.Reactive.Testing/ColdObservable.cs
@@ -13,7 +13,7 @@ internal class ColdObservable : ITestableObservable
{
private readonly TestScheduler _scheduler;
private readonly Recorded>[] _messages;
- private readonly List _subscriptions = new();
+ private readonly List _subscriptions = [];
public ColdObservable(TestScheduler scheduler, params Recorded>[] messages)
{
diff --git a/Rx.NET/Source/src/Microsoft.Reactive.Testing/HotObservable.cs b/Rx.NET/Source/src/Microsoft.Reactive.Testing/HotObservable.cs
index 240f2492be..2e9c9190b6 100644
--- a/Rx.NET/Source/src/Microsoft.Reactive.Testing/HotObservable.cs
+++ b/Rx.NET/Source/src/Microsoft.Reactive.Testing/HotObservable.cs
@@ -12,8 +12,8 @@ namespace Microsoft.Reactive.Testing
internal class HotObservable : ITestableObservable
{
private readonly TestScheduler _scheduler;
- private readonly List> _observers = new();
- private readonly List _subscriptions = new();
+ private readonly List> _observers = [];
+ private readonly List _subscriptions = [];
private readonly Recorded>[] _messages;
public HotObservable(TestScheduler scheduler, params Recorded>[] messages)
diff --git a/Rx.NET/Source/src/Microsoft.Reactive.Testing/MockObserver.cs b/Rx.NET/Source/src/Microsoft.Reactive.Testing/MockObserver.cs
index 78608816f5..7b7f442d72 100644
--- a/Rx.NET/Source/src/Microsoft.Reactive.Testing/MockObserver.cs
+++ b/Rx.NET/Source/src/Microsoft.Reactive.Testing/MockObserver.cs
@@ -11,12 +11,11 @@ namespace Microsoft.Reactive.Testing
internal class MockObserver : ITestableObserver
{
private readonly TestScheduler _scheduler;
- private readonly List>> _messages;
+ private readonly List>> _messages = [];
public MockObserver(TestScheduler scheduler)
{
_scheduler = scheduler ?? throw new ArgumentNullException(nameof(scheduler));
- _messages = new List>>();
}
public void OnNext(T value)
diff --git a/Rx.NET/Source/src/System.Reactive/Concurrency/LocalScheduler.TimerQueue.cs b/Rx.NET/Source/src/System.Reactive/Concurrency/LocalScheduler.TimerQueue.cs
index fa004fe4f3..f900e5f3d6 100644
--- a/Rx.NET/Source/src/System.Reactive/Concurrency/LocalScheduler.TimerQueue.cs
+++ b/Rx.NET/Source/src/System.Reactive/Concurrency/LocalScheduler.TimerQueue.cs
@@ -55,7 +55,7 @@ public partial class LocalScheduler
/// Set of disposable handles to all of the current short term work Schedule calls,
/// allowing those to be cancelled upon a system clock change.
///
- private readonly HashSet _shortTermWork = new();
+ private readonly HashSet _shortTermWork = [];
///
/// Threshold where an item is considered to be short term work or gets moved from
diff --git a/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Recursive.cs b/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Recursive.cs
index 6850bda2ef..475f23717b 100644
--- a/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Recursive.cs
+++ b/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Recursive.cs
@@ -175,12 +175,11 @@ private abstract class InvokeRecBaseState : IDisposable
{
protected readonly IScheduler Scheduler;
- protected readonly CompositeDisposable Group;
+ protected readonly CompositeDisposable Group = [];
protected InvokeRecBaseState(IScheduler scheduler)
{
Scheduler = scheduler;
- Group = new CompositeDisposable();
}
public void Dispose()
diff --git a/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Services.cs b/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Services.cs
index f1bd239917..470a40c5c5 100644
--- a/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Services.cs
+++ b/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Services.cs
@@ -10,12 +10,13 @@ namespace System.Reactive.Concurrency
//
public static partial class Scheduler
{
- internal static Type[] Optimizations = {
+ internal static Type[] Optimizations =
+ [
typeof(ISchedulerLongRunning),
typeof(IStopwatchProvider),
typeof(ISchedulerPeriodic)
/* update this list if new interface-based optimizations are added */
- };
+ ];
///
/// Returns the implementation of the specified scheduler, or null if no such implementation is available.
diff --git a/Rx.NET/Source/src/System.Reactive/Concurrency/SchedulerWrapper.cs b/Rx.NET/Source/src/System.Reactive/Concurrency/SchedulerWrapper.cs
index 5ab8535f9c..b599a63c21 100644
--- a/Rx.NET/Source/src/System.Reactive/Concurrency/SchedulerWrapper.cs
+++ b/Rx.NET/Source/src/System.Reactive/Concurrency/SchedulerWrapper.cs
@@ -9,12 +9,16 @@ namespace System.Reactive.Concurrency
internal abstract class SchedulerWrapper : IScheduler, IServiceProvider
{
protected readonly IScheduler _scheduler;
- private readonly ConditionalWeakTable _cache;
+ private readonly ConditionalWeakTable _cache =
+#if NET472_OR_GREATER || NETSTANDARD2_0_OR_GREATER
+ new();
+#else
+ [];
+#endif
protected SchedulerWrapper(IScheduler scheduler)
{
_scheduler = scheduler;
- _cache = new ConditionalWeakTable();
}
protected SchedulerWrapper(IScheduler scheduler, ConditionalWeakTable cache)
diff --git a/Rx.NET/Source/src/System.Reactive/Diagnostics/CodeAnalysis/NullableAttributes.cs b/Rx.NET/Source/src/System.Reactive/Diagnostics/CodeAnalysis/NullableAttributes.cs
index d721561cce..262bab9335 100644
--- a/Rx.NET/Source/src/System.Reactive/Diagnostics/CodeAnalysis/NullableAttributes.cs
+++ b/Rx.NET/Source/src/System.Reactive/Diagnostics/CodeAnalysis/NullableAttributes.cs
@@ -96,7 +96,7 @@ internal sealed class MemberNotNullAttribute : Attribute
/// The field or property member that is promised to be not-null.
///
#pragma warning disable CA1019 // Define accessors for attribute arguments - this needs to be identical to the real type
- public MemberNotNullAttribute(string member) => Members = new[] { member };
+ public MemberNotNullAttribute(string member) => Members = [member];
#pragma warning restore CA1019
/// Initializes the attribute with the list of field and property members.
@@ -125,7 +125,7 @@ public MemberNotNullWhenAttribute(bool returnValue, string member)
#pragma warning restore CA1019
{
ReturnValue = returnValue;
- Members = new[] { member };
+ Members = [member];
}
/// Initializes the attribute with the specified return value condition and list of field and property members.
diff --git a/Rx.NET/Source/src/System.Reactive/Disposables/CompositeDisposable.cs b/Rx.NET/Source/src/System.Reactive/Disposables/CompositeDisposable.cs
index 03d4abee00..a0af531f8a 100644
--- a/Rx.NET/Source/src/System.Reactive/Disposables/CompositeDisposable.cs
+++ b/Rx.NET/Source/src/System.Reactive/Disposables/CompositeDisposable.cs
@@ -29,7 +29,7 @@ public sealed class CompositeDisposable : ICollection, ICancelable
///
public CompositeDisposable()
{
- _disposables = new List();
+ _disposables = [];
}
///
@@ -387,7 +387,7 @@ public IEnumerator GetEnumerator()
/// method to avoid allocation on disposed or empty composites.
///
private static readonly CompositeEnumerator EmptyEnumerator =
- new(Array.Empty());
+ new([]);
///
/// An enumerator for an array of disposables.
diff --git a/Rx.NET/Source/src/System.Reactive/Disposables/SingleAssignmentDisposableValue.cs b/Rx.NET/Source/src/System.Reactive/Disposables/SingleAssignmentDisposableValue.cs
index 8707062a5e..b0032584fc 100644
--- a/Rx.NET/Source/src/System.Reactive/Disposables/SingleAssignmentDisposableValue.cs
+++ b/Rx.NET/Source/src/System.Reactive/Disposables/SingleAssignmentDisposableValue.cs
@@ -50,10 +50,10 @@ public void Dispose()
}
///
- public override bool Equals(object? obj) => false;
+ public override readonly bool Equals(object? obj) => false;
///
- public override int GetHashCode() => 0;
+ public override readonly int GetHashCode() => 0;
#pragma warning disable IDE0060 // (Remove unused parameter.) Required part of public API
public static bool operator ==(SingleAssignmentDisposableValue left, SingleAssignmentDisposableValue right) => false;
diff --git a/Rx.NET/Source/src/System.Reactive/EventPattern.cs b/Rx.NET/Source/src/System.Reactive/EventPattern.cs
index 00a0b00d8d..a61cc4487b 100644
--- a/Rx.NET/Source/src/System.Reactive/EventPattern.cs
+++ b/Rx.NET/Source/src/System.Reactive/EventPattern.cs
@@ -17,9 +17,7 @@ public class EventPattern : EventPattern
/// The sender object that raised the event.
/// The event data that was generated by the event.
-#pragma warning disable CA2109 // (Consider making non-public.) This has long been part of the public API so we couldn't change this even if we wanted to.
public EventPattern(object? sender, TEventArgs e)
-#pragma warning restore CA2109
: base(sender, e)
{
}
diff --git a/Rx.NET/Source/src/System.Reactive/EventPatternSourceBase.cs b/Rx.NET/Source/src/System.Reactive/EventPatternSourceBase.cs
index aa3647e052..616742b4c5 100644
--- a/Rx.NET/Source/src/System.Reactive/EventPatternSourceBase.cs
+++ b/Rx.NET/Source/src/System.Reactive/EventPatternSourceBase.cs
@@ -76,7 +76,7 @@ public void SetResource(IDisposable resource)
}
private readonly IObservable> _source;
- private readonly Dictionary> _subscriptions;
+ private readonly Dictionary> _subscriptions = [];
private readonly Action, /*object,*/ EventPattern> _invokeHandler;
///
@@ -89,7 +89,6 @@ protected EventPatternSourceBase(IObservable>
{
_source = source ?? throw new ArgumentNullException(nameof(source));
_invokeHandler = invokeHandler ?? throw new ArgumentNullException(nameof(invokeHandler));
- _subscriptions = new Dictionary>();
}
///
diff --git a/Rx.NET/Source/src/System.Reactive/EventSource.cs b/Rx.NET/Source/src/System.Reactive/EventSource.cs
index 85dc2cf4e8..b737bd8b8b 100644
--- a/Rx.NET/Source/src/System.Reactive/EventSource.cs
+++ b/Rx.NET/Source/src/System.Reactive/EventSource.cs
@@ -9,14 +9,13 @@ namespace System.Reactive
internal sealed class EventSource : IEventSource
{
private readonly IObservable _source;
- private readonly Dictionary> _subscriptions;
+ private readonly Dictionary> _subscriptions = [];
private readonly Action, /*object,*/ T> _invokeHandler;
public EventSource(IObservable source, Action, /*object,*/ T> invokeHandler)
{
_source = source;
_invokeHandler = invokeHandler;
- _subscriptions = new Dictionary>();
}
public event Action OnNext
diff --git a/Rx.NET/Source/src/System.Reactive/Internal/ImmutableList.cs b/Rx.NET/Source/src/System.Reactive/Internal/ImmutableList.cs
index f4ad42bb38..32a5062e07 100644
--- a/Rx.NET/Source/src/System.Reactive/Internal/ImmutableList.cs
+++ b/Rx.NET/Source/src/System.Reactive/Internal/ImmutableList.cs
@@ -10,7 +10,7 @@ internal sealed class ImmutableList
private readonly T[] _data;
- private ImmutableList() => _data = Array.Empty();
+ private ImmutableList() => _data = [];
public ImmutableList(T[] data) => _data = data;
diff --git a/Rx.NET/Source/src/System.Reactive/Internal/Lookup.cs b/Rx.NET/Source/src/System.Reactive/Internal/Lookup.cs
index 74e8c111d6..d34a84d47d 100644
--- a/Rx.NET/Source/src/System.Reactive/Internal/Lookup.cs
+++ b/Rx.NET/Source/src/System.Reactive/Internal/Lookup.cs
@@ -23,7 +23,7 @@ public void Add(K key, E element)
{
if (!_dictionary.TryGetValue(key, out var list))
{
- _dictionary[key] = list = new List();
+ _dictionary[key] = list = [];
}
list.Add(element);
diff --git a/Rx.NET/Source/src/System.Reactive/Internal/SystemClock.cs b/Rx.NET/Source/src/System.Reactive/Internal/SystemClock.cs
index 373e93b335..1555335d25 100644
--- a/Rx.NET/Source/src/System.Reactive/Internal/SystemClock.cs
+++ b/Rx.NET/Source/src/System.Reactive/Internal/SystemClock.cs
@@ -21,7 +21,7 @@ public static class SystemClock
{
private static readonly Lazy ServiceSystemClock = new(InitializeSystemClock);
private static readonly Lazy ServiceSystemClockChanged = new(InitializeSystemClockChanged);
- internal static readonly HashSet> SystemClockChanged = new();
+ internal static readonly HashSet> SystemClockChanged = [];
private static IDisposable? _systemClockChangedHandlerCollector;
private static int _refCount;
@@ -123,7 +123,7 @@ private static void CollectHandlers()
{
if (!handler.TryGetTarget(out _))
{
- remove ??= new HashSet>();
+ remove ??= [];
remove.Add(handler);
}
diff --git a/Rx.NET/Source/src/System.Reactive/Joins/ActivePlan.cs b/Rx.NET/Source/src/System.Reactive/Joins/ActivePlan.cs
index aa4f3bb6be..0fd61f530b 100644
--- a/Rx.NET/Source/src/System.Reactive/Joins/ActivePlan.cs
+++ b/Rx.NET/Source/src/System.Reactive/Joins/ActivePlan.cs
@@ -8,7 +8,7 @@ namespace System.Reactive.Joins
{
internal abstract class ActivePlan
{
- private readonly Dictionary _joinObservers = new();
+ private readonly Dictionary _joinObservers = [];
protected readonly Action _onCompleted;
diff --git a/Rx.NET/Source/src/System.Reactive/Joins/JoinObserver.cs b/Rx.NET/Source/src/System.Reactive/Joins/JoinObserver.cs
index 23f92b4d16..da4074aead 100644
--- a/Rx.NET/Source/src/System.Reactive/Joins/JoinObserver.cs
+++ b/Rx.NET/Source/src/System.Reactive/Joins/JoinObserver.cs
@@ -19,7 +19,7 @@ internal sealed class JoinObserver : ObserverBase>, IJoinObse
private object? _gate;
private readonly IObservable _source;
private readonly Action _onError;
- private readonly List _activePlans;
+ private readonly List _activePlans = [];
private SingleAssignmentDisposableValue _subscription;
private bool _isDisposed;
@@ -28,7 +28,6 @@ public JoinObserver(IObservable source, Action onError)
_source = source;
_onError = onError;
Queue = new Queue>();
- _activePlans = new List();
}
public Queue> Queue { get; }
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Buffer.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Buffer.cs
index c74db992cb..2c484e18fc 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Buffer.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Buffer.cs
@@ -436,7 +436,7 @@ public TimeHopping(IObservable source, TimeSpan timeSpan, IScheduler sc
internal sealed class _ : Sink>
{
private readonly object _gate = new();
- private List _list = new();
+ private List _list = [];
public _(IObserver> observer)
: base(observer)
@@ -465,7 +465,7 @@ private void Tick()
lock (_gate)
{
ForwardOnNext(_list);
- _list = new List();
+ _list = [];
}
}
@@ -521,7 +521,7 @@ internal sealed class _ : Sink>
{
private readonly Ferry _parent;
private readonly object _gate = new();
- private List _s = new();
+ private List _s = [];
public _(Ferry parent, IObserver> observer)
: base(observer)
@@ -574,7 +574,7 @@ private void Tick(int id)
var newId = ++_windowId;
var res = _s;
- _s = new List();
+ _s = [];
ForwardOnNext(res);
CreateTimer(newId);
@@ -598,7 +598,7 @@ public override void OnNext(TSource value)
newId = ++_windowId;
var res = _s;
- _s = new List();
+ _s = [];
ForwardOnNext(res);
}
@@ -653,7 +653,7 @@ internal sealed class _ : Sink>
private readonly AsyncLock _bufferGate = new();
private readonly Func> _bufferClosingSelector;
- private List _buffer = new();
+ private List _buffer = [];
private SerialDisposableValue _bufferClosingSerialDisposable;
public _(Selector parent, IObserver> observer)
@@ -706,7 +706,7 @@ private void CloseBuffer(IDisposable closingSubscription)
lock (_gate)
{
var res = _buffer;
- _buffer = new List();
+ _buffer = [];
ForwardOnNext(res);
}
@@ -785,7 +785,7 @@ internal sealed class _ : Sink>
{
private readonly object _gate = new();
- private List _buffer = new();
+ private List _buffer = [];
private SingleAssignmentDisposableValue _boundariesDisposable;
public _(IObserver> observer)
@@ -823,7 +823,7 @@ public void OnNext(TBufferClosing value)
lock (_parent._gate)
{
var res = _parent._buffer;
- _parent._buffer = new List();
+ _parent._buffer = [];
_parent.ForwardOnNext(res);
}
}
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Delay.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Delay.cs
index 1abebc011a..8d36ff3de5 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Delay.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Delay.cs
@@ -597,7 +597,7 @@ protected Base(IObservable source)
internal abstract class _ : IdentitySink
{
- private readonly CompositeDisposable _delays = new();
+ private readonly CompositeDisposable _delays = [];
private readonly object _gate = new();
private readonly Func> _delaySelector;
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/FromEventPattern.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/FromEventPattern.cs
index f5b6110ae1..7160319697 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/FromEventPattern.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/FromEventPattern.cs
@@ -142,7 +142,7 @@ private Action AddHandlerCore(Delegate handler)
private Action AddHandlerCoreWinRT(Delegate handler)
{
var token = _addMethod.Invoke(_target, new object[] { handler });
- return () => _removeMethod.Invoke(_target, new[] { token });
+ return () => _removeMethod.Invoke(_target, [token]);
}
}
}
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupByUntil.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupByUntil.cs
index 0d5521f01b..c3495871e6 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupByUntil.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupByUntil.cs
@@ -35,7 +35,7 @@ internal sealed class _ : Sink>
{
private readonly object _gate = new();
private readonly object _nullGate = new();
- private readonly CompositeDisposable _groupDisposable = new();
+ private readonly CompositeDisposable _groupDisposable = [];
private readonly RefCountDisposable _refCountDisposable;
private readonly Map> _map;
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupJoin.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupJoin.cs
index 842dc54f27..a835f4edd7 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupJoin.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/GroupJoin.cs
@@ -32,10 +32,10 @@ public GroupJoin(IObservable left, IObservable right, Func
{
private readonly object _gate = new();
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
private readonly RefCountDisposable _refCount;
- private readonly SortedDictionary> _leftMap;
- private readonly SortedDictionary _rightMap;
+ private readonly SortedDictionary> _leftMap = [];
+ private readonly SortedDictionary _rightMap = [];
private readonly Func> _leftDurationSelector;
private readonly Func> _rightDurationSelector;
@@ -45,8 +45,6 @@ public _(GroupJoin parent
: base(observer)
{
_refCount = new RefCountDisposable(_group);
- _leftMap = new SortedDictionary>();
- _rightMap = new SortedDictionary();
_leftDurationSelector = parent._leftDurationSelector;
_rightDurationSelector = parent._rightDurationSelector;
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Join.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Join.cs
index 3b7db67747..d2304a5a82 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Join.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Join.cs
@@ -31,9 +31,9 @@ public Join(IObservable left, IObservable right, Func
{
private readonly object _gate = new();
- private readonly CompositeDisposable _group = new();
- private readonly SortedDictionary _leftMap = new();
- private readonly SortedDictionary _rightMap = new();
+ private readonly CompositeDisposable _group = [];
+ private readonly SortedDictionary _leftMap = [];
+ private readonly SortedDictionary _rightMap = [];
private readonly Func> _leftDurationSelector;
private readonly Func> _rightDurationSelector;
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/MaxBy.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/MaxBy.cs
index f3f56893ca..80d847b351 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/MaxBy.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/MaxBy.cs
@@ -29,15 +29,13 @@ internal sealed class _ : Sink>
private readonly IComparer _comparer;
private bool _hasValue;
private TKey? _lastKey;
- private List _list;
+ private List _list = [];
public _(MaxBy parent, IObserver> observer)
: base(observer)
{
_keySelector = parent._keySelector;
_comparer = parent._comparer;
-
- _list = new List();
}
public override void OnNext(TSource value)
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Merge.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Merge.cs
index 06e5971913..c4ff799eb4 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Merge.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Merge.cs
@@ -32,7 +32,7 @@ internal sealed class _ : Sink, TSource>
private readonly object _gate = new();
private readonly int _maxConcurrent;
private readonly Queue> _q = new();
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
public _(int maxConcurrent, IObserver observer)
: base(observer)
@@ -165,7 +165,7 @@ public Observables(IObservable> sources)
internal sealed class _ : Sink, TSource>
{
private readonly object _gate = new();
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
public _(IObserver observer)
: base(observer)
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/MinBy.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/MinBy.cs
index 6c87ab8016..1ea4dcdd10 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/MinBy.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/MinBy.cs
@@ -29,15 +29,13 @@ internal sealed class _ : Sink>
private readonly IComparer _comparer;
private bool _hasValue;
private TKey? _lastKey;
- private List _list;
+ private List _list = [];
public _(MinBy parent, IObserver> observer)
: base(observer)
{
_keySelector = parent._keySelector;
_comparer = parent._comparer;
-
- _list = new List();
}
public override void OnNext(TSource value)
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs
index 17c19f80cc..229237174f 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs
@@ -32,7 +32,7 @@ public ObservableSelector(IObservable source, Func
{
private readonly object _gate = new();
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
private readonly Func> _collectionSelector;
private readonly Func _resultSelector;
@@ -193,7 +193,7 @@ public ObservableSelectorIndexed(IObservable source, Func
{
private readonly object _gate = new();
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
private readonly Func> _collectionSelector;
private readonly Func _resultSelector;
@@ -850,7 +850,7 @@ internal class _ : Sink
{
protected readonly object _gate = new();
private readonly Func> _selector;
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
private volatile bool _isStopped;
@@ -1081,7 +1081,7 @@ public ObservableSelectorIndexed(IObservable source, Func
{
private readonly object _gate = new();
- private readonly CompositeDisposable _group = new();
+ private readonly CompositeDisposable _group = [];
protected readonly Func> _selector;
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToArray.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToArray.cs
index 80d408581f..1daf923876 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToArray.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToArray.cs
@@ -21,12 +21,11 @@ public ToArray(IObservable source)
internal sealed class _ : Sink
{
- private List _list;
+ private List _list = [];
public _(IObserver observer)
: base(observer)
{
- _list = new List();
}
public override void OnNext(TSource value)
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToList.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToList.cs
index 95cac9d32c..2763383634 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToList.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToList.cs
@@ -21,12 +21,11 @@ public ToList(IObservable source)
internal sealed class _ : Sink>
{
- private List _list;
+ private List _list = [];
public _(IObserver> observer)
: base(observer)
{
- _list = new List();
}
public override void OnNext(TSource value)
diff --git a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Zip.cs b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Zip.cs
index 1e1b88b3d1..9888ef772c 100644
--- a/Rx.NET/Source/src/System.Reactive/Linq/Observable/Zip.cs
+++ b/Rx.NET/Source/src/System.Reactive/Linq/Observable/Zip.cs
@@ -637,7 +637,7 @@ protected override void Dispose(bool disposing)
{
if (disposing)
{
- var subscriptions = Interlocked.Exchange(ref _subscriptions, Array.Empty());
+ var subscriptions = Interlocked.Exchange(ref _subscriptions, []);
if (subscriptions != null && subscriptions != Array.Empty())
{
for (var i = 0; i < subscriptions.Length; i++)
diff --git a/Rx.NET/Source/src/System.Reactive/ListObservable.cs b/Rx.NET/Source/src/System.Reactive/ListObservable.cs
index de19a920f2..310922d592 100644
--- a/Rx.NET/Source/src/System.Reactive/ListObservable.cs
+++ b/Rx.NET/Source/src/System.Reactive/ListObservable.cs
@@ -21,7 +21,7 @@ public class ListObservable : IList, IObservable