Skip to content

Commit 628d1d2

Browse files
committed
Modernize code using collection expressions
1 parent 2fb94e2 commit 628d1d2

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
@@ -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

Comments
 (0)