Beispiel #1
0
 private void MergeByComparison()
 {
     var left = dataLeft.Count > 0 ? dataLeft.Peek() : default;
     var right = dataRight.Count > 0 ? dataRight.Peek() : default; ;
     if (right == null)
         CreateOutput(dataLeft.Dequeue(), right);
     else if (left == null)
         CreateOutput(left, dataRight.Dequeue());
     else
     {
         int comp = ComparisonFunc.Invoke(left, right);
         if (comp == 0)
             CreateOutput(dataLeft.Dequeue(), dataRight.Dequeue());
         else if (comp < 0)
             CreateOutput(dataLeft.Dequeue(), default);
         else if (comp > 0)
             CreateOutput(default, dataRight.Dequeue());