Skip to content

Commit a0cb14b

Browse files
committed
Modernize code using collection expressions
1 parent 83fcff6 commit a0cb14b

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

src/Merq/MessageBus.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)