Explorar o código

Let's go with iterator

Piotr Czajkowski hai 4 meses
pai
achega
e6b9bd0df2

+ 3 - 6
ExcelInfo/ExcelInfo/WorksheetInfo.cs

@@ -13,15 +13,14 @@ namespace ExcelInfo
             return numberOfCells > 2 ? cells.Last().DataType : cells.First().DataType;
         }
 
-        public static List<WorksheetRecord> GetInfoOnWorksheets(string workbookPath)
+        public static IEnumerable<WorksheetRecord> GetInfoOnWorksheets(string workbookPath)
         {
             var workbook = new XLWorkbook(workbookPath);
             return GetInfoOnWorksheets(workbook);
         }
 
-        private static List<WorksheetRecord> GetInfoOnWorksheets(IXLWorkbook workbook)
+        private static IEnumerable<WorksheetRecord> GetInfoOnWorksheets(IXLWorkbook workbook)
         {
-            var worksheets = new List<WorksheetRecord>();
             foreach (var sheet in workbook.Worksheets)
             {
                 var columns = new List<ColumnInfo>();
@@ -33,10 +32,8 @@ namespace ExcelInfo
                     columns.Add(new ColumnInfo(cell.Address.ColumnLetter, cell.Value.ToString(), columnCells.Count() - 1, cellsType, cell.Address.ColumnNumber));
                 }
 
-                worksheets.Add(new WorksheetRecord(sheet.Position, sheet.Name, columns));
+                yield return new WorksheetRecord(sheet.Position, sheet.Name, columns);
             }
-
-            return worksheets;
         }
     }
 }

+ 2 - 2
ExcelInfo/ExcelInfoTests/WorksheetInfoTests.cs

@@ -8,8 +8,8 @@ public class WorksheetInfoTests
     [Fact]
     public void GetInfoOnWorksheets()
     {
-        var result = WorksheetInfo.GetInfoOnWorksheets(DifferentTypesFile);
-        Assert.Equal(2, result.Count);
+        var result = WorksheetInfo.GetInfoOnWorksheets(DifferentTypesFile).ToList();
+        Assert.Equal(2, result.Count());
         Assert.NotEqual(result.First(), result.Last());
         Assert.NotEqual(result.First().Columns, result.Last().Columns);
     }