public List <TRecordType> Get_all_budget_items <TRecordType>(BudgetItemListData budget_item_list_data) where TRecordType : ICSVRecord, new() { int first_row_number = _spreadsheet_io .Find_row_number_of_last_row_containing_cell(budget_item_list_data.Sheet_name, budget_item_list_data.Start_divider) + 1; int last_row_number = _spreadsheet_io .Find_row_number_of_last_row_containing_cell(budget_item_list_data.Sheet_name, budget_item_list_data.End_divider) - 1; return(_spreadsheet_io.Get_rows_as_records <TRecordType>( budget_item_list_data.Sheet_name, first_row_number, last_row_number, budget_item_list_data.First_column_number, budget_item_list_data.Last_column_number)); }