Browse Source

Optimizing list creation in Zip.

Bart De Smet 8 years ago
parent
commit
053ad767f3
1 changed files with 8 additions and 1 deletions
  1. 8 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Zip.cs

+ 8 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/Zip.cs

@@ -592,7 +592,14 @@ namespace System.Reactive.Linq.ObservableImpl
 
                     if (_queues.All(q => q.Count > 0))
                     {
-                        var res = _queues.Select(q => q.Dequeue()).ToList();
+                        var n = _queues.Length;
+
+                        var res = new List<TSource>(n);
+                        for (var i = 0; i < n; i++)
+                        {
+                            res.Add(_queues[i].Dequeue());
+                        }
+
                         base._observer.OnNext(res);
                     }
                     else if (_isDone.AllExcept(index))