@@ -339,14 +339,16 @@ public void Notify<TEvent>(TEvent e, [CallerMemberName] string? callerName = def
339339 // We call all subjects that are compatible with
340340 // the event type, not just concrete event type subscribers.
341341 // Also adds as compatible the dynamic conversion ones.
342- var compatible = compatibleSubjects . GetOrAdd ( type , eventType => subjects . Keys
343- . Where ( subjectEventType => subjectEventType . IsAssignableFrom ( eventType ) )
344- . Select ( subjectEventType => subjects [ subjectEventType ] )
345- . Concat ( dynamicSubjects
346- . GetOrAdd ( type . FullName ?? type . Name , _ => new ( ) )
347- . Where ( pair => pair . Key != type && pair . Value != null )
348- . Select ( pair => pair . Value ! ) )
349- . ToArray ( ) ) ;
342+ var compatible = compatibleSubjects . GetOrAdd ( type , eventType =>
343+ [
344+ .. subjects . Keys
345+ . Where ( subjectEventType => subjectEventType . IsAssignableFrom ( eventType ) )
346+ . Select ( subjectEventType => subjects [ subjectEventType ] ) ,
347+ .. dynamicSubjects
348+ . GetOrAdd ( type . FullName ?? type . Name , _ => new ( ) )
349+ . Where ( pair => pair . Key != type && pair . Value != null )
350+ . Select ( pair => pair . Value ! ) ,
351+ ] ) ;
350352
351353 foreach ( var subject in compatible )
352354 {
@@ -407,9 +409,9 @@ public IObservable<TEvent> Observe<TEvent>()
407409
408410 // Merge with any externally-produced observables that are compatible
409411 if ( dynamicSubject == null )
410- return new CompositeObservable < TEvent > ( new [ ] { typedSubject } . Concat ( producers ) . ToArray ( ) ) ;
412+ return new CompositeObservable < TEvent > ( [ typedSubject , .. producers ] ) ;
411413 else
412- return new CompositeObservable < TEvent > ( new [ ] { typedSubject , dynamicSubject } . Concat ( producers ) . ToArray ( ) ) ;
414+ return new CompositeObservable < TEvent > ( [ typedSubject , dynamicSubject , .. producers ] ) ;
413415 }
414416
415417 /// <summary>
@@ -691,8 +693,7 @@ public System.Collections.Generic.IAsyncEnumerable<TResult> ExecuteStream<TComma
691693 class CompositeObservable < T > ( params IObservable < T > [ ] observables ) : IObservable < T >
692694 {
693695 public IDisposable Subscribe ( IObserver < T > observer )
694- => new CompositeDisposable ( observables
695- . Select ( observable => observable . Subscribe ( observer ) ) . ToArray ( ) ) ;
696+ => new CompositeDisposable ( [ .. observables . Select ( observable => observable . Subscribe ( observer ) ) ] ) ;
696697 }
697698
698699 #endregion
0 commit comments