diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs index bd9917e..f62761c 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs @@ -23,9 +23,7 @@ public IEnumerator GetEnumerator() { - var retList = new List(); - _columns.ForEach(retList.Add); - return retList.GetEnumerator(); + return _columns.Cast().OrderBy(r => r.ColumnNumber()).GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeColumns.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeColumns.cs index cb9208f..83dbfa0 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeColumns.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeColumns.cs @@ -38,9 +38,10 @@ public IEnumerator GetEnumerator() { - var retList = new List(); - _ranges.ForEach(retList.Add); - return retList.GetEnumerator(); + return _ranges.Cast() + .OrderBy(r => r.Worksheet.Position) + .ThenBy(r => r.ColumnNumber()) + .GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeRows.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeRows.cs index 29ede5c..76dd6f7 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeRows.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeRows.cs @@ -38,9 +38,10 @@ public IEnumerator GetEnumerator() { - var retList = new List(); - _ranges.ForEach(retList.Add); - return retList.GetEnumerator(); + return _ranges.Cast() + .OrderBy(r=>r.Worksheet.Position) + .ThenBy(r => r.RowNumber()) + .GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs index 232de05..728395c 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs @@ -23,9 +23,7 @@ public IEnumerator GetEnumerator() { - var retList = new List(); - _rows.ForEach(retList.Add); - return retList.GetEnumerator(); + return _rows.Cast().OrderBy(r=>r.RowNumber()).GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator()