private void Print(PrintPageEventArgs e, IEnumerable<Tuple<int, string, string>> pairs) { int yOffset = e.MarginBounds.Top; foreach (var tuple in pairs) { switch (tuple.Item1) { case 0: PrintEmptyLine(e, ref yOffset); break; case 1: PrintTwoColumn(e, tuple.Item2, tuple.Item3, ref yOffset); break; case 2: PrintSingleColumn(e, tuple.Item2, tuple.Item3, ref yOffset); break; } } }