@@ -341,14 +341,16 @@ public void Notify<TEvent>(TEvent e, [CallerMemberName] string? callerName = def
341341 // We call all subjects that are compatible with
342342 // the event type, not just concrete event type subscribers.
343343 // Also adds as compatible the dynamic conversion ones.
344- var compatible = compatibleSubjects . GetOrAdd ( type , eventType => subjects . Keys
345- . Where ( subjectEventType => subjectEventType . IsAssignableFrom ( eventType ) )
346- . Select ( subjectEventType => subjects [ subjectEventType ] )
347- . Concat ( dynamicSubjects
348- . GetOrAdd ( type . FullName ?? type . Name , _ => new ( ) )
349- . Where ( pair => pair . Key != type && pair . Value != null )
350- . Select ( pair => pair . Value ! ) )
351- . ToArray ( ) ) ;
344+ var compatible = compatibleSubjects . GetOrAdd ( type , eventType =>
345+ [
346+ .. subjects . Keys
347+ . Where ( subjectEventType => subjectEventType . IsAssignableFrom ( eventType ) )
348+ . Select ( subjectEventType => subjects [ subjectEventType ] ) ,
349+ .. dynamicSubjects
350+ . GetOrAdd ( type . FullName ?? type . Name , _ => new ( ) )
351+ . Where ( pair => pair . Key != type && pair . Value != null )
352+ . Select ( pair => pair . Value ! ) ,
353+ ] ) ;
352354
353355 foreach ( var subject in compatible )
354356 {
@@ -409,9 +411,9 @@ public IObservable<TEvent> Observe<TEvent>()
409411
410412 // Merge with any externally-produced observables that are compatible
411413 if ( dynamicSubject == null )
412- return new CompositeObservable < TEvent > ( new [ ] { typedSubject } . Concat ( producers ) . ToArray ( ) ) ;
414+ return new CompositeObservable < TEvent > ( [ typedSubject , .. producers ] ) ;
413415 else
414- return new CompositeObservable < TEvent > ( new [ ] { typedSubject , dynamicSubject } . Concat ( producers ) . ToArray ( ) ) ;
416+ return new CompositeObservable < TEvent > ( [ typedSubject , dynamicSubject , .. producers ] ) ;
415417 }
416418
417419 /// <summary>
@@ -693,8 +695,7 @@ public System.Collections.Generic.IAsyncEnumerable<TResult> ExecuteStream<TComma
693695 class CompositeObservable < T > ( params IObservable < T > [ ] observables ) : IObservable < T >
694696 {
695697 public IDisposable Subscribe ( IObserver < T > observer )
696- => new CompositeDisposable ( observables
697- . Select ( observable => observable . Subscribe ( observer ) ) . ToArray ( ) ) ;
698+ => new CompositeDisposable ( [ .. observables . Select ( observable => observable . Subscribe ( observer ) ) ] ) ;
698699 }
699700
700701 #endregion
0 commit comments