Création d'une string de caractères avec une boucle 'foreach' dans C #

J'ai légèrement modifié un certain code de msdn.com. J'essaie d'get un set de strings de tous les noms de feuille dans une feuille de calcul Excel. Puis-je append un code à l'instruction foreach sorte que chaque fois qu'il boucle, il place Attr.Value dans le tableau?

 public static void GetSpreadsheetData(ssortingng fileName) { using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false)) { ssortingng[] allTheSheets = new ssortingng[0]; ssortingng[] allTheData = new ssortingng[0]; S sheets = spreadsheetDocument.WorkbookPart.Workbook.Sheets; foreach (E sheet in sheets) { foreach (A attr in sheet.GetAtsortingbutes()) { int i = 0; ssortingng sheetName = attr.Value; allTheSheets[i] = attr.Value.ToSsortingng(); i++; Console.WriteLine(allTheSheets[0]); Console.ReadLine(); } } } } i ++; public static void GetSpreadsheetData(ssortingng fileName) { using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false)) { ssortingng[] allTheSheets = new ssortingng[0]; ssortingng[] allTheData = new ssortingng[0]; S sheets = spreadsheetDocument.WorkbookPart.Workbook.Sheets; foreach (E sheet in sheets) { foreach (A attr in sheet.GetAtsortingbutes()) { int i = 0; ssortingng sheetName = attr.Value; allTheSheets[i] = attr.Value.ToSsortingng(); i++; Console.WriteLine(allTheSheets[0]); Console.ReadLine(); } } } } 

Voici le message d'erreur que je reçois:

"L'index était en dehors des limites du tableau."

Une des choses qui m'a confondu est que lorsque j'ai mis en place le tableau, je lui ai donné un index de [0], alors, comment est-ce en dehors des limites?

Vous avez créé un tableau qui pourrait contenir un seul élément et cet élément sera stocké à l'index 0. Bien sûr, si vous avez plus d'une instance de class A dans votre boucle intérieure, vous avez besoin de plus d'éléments dans le tableau.

Au lieu d'utiliser des arrays, vous pouvez modifier votre code pour utiliser une List<ssortingng>

 using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false)) { List<ssortingng> allTheSheets = new List<ssortingng>(); List<ssortingng> allTheData = new List<ssortingng>(); S sheets = spreadsheetDocument.WorkbookPart.Workbook.Sheets; foreach (E sheet in sheets) { foreach (A attr in sheet.GetAtsortingbutes()) { ssortingng sheetName = attr.Value; allTheSheets.Add(attr.Value.ToSsortingng()); } } 

À la fin de ces deux loops, vous aurez toutes les valeurs A dans votre list toutes les allTheSheets et vous pouvez utiliser une autre option pour regarder son contenu.

Cela dit, votre code semble un peu étrange. L'index utilisé pour stocker et imprimer l'élément de string est toujours nul et, par conséquent, vous ne devriez pas avoir d' Index Out Of Bound .