/// <summary> /// Remplace la totalité des données dans le tableau /// </summary> /// <param name="iSimpleDataTable"></param> /// <param name="iNewDataList"></param> public static void ReplaceCompleteDataToSimpleDateTable(SimpleDataTable iSimpleDataTable, List <List <string> > iNewDataList) { if (iNewDataList.IsNullOrEmpty()) { throw new Exception("La nouvelle liste est vide ou null"); } var mergeData = new object[iNewDataList.Count, iNewDataList.First().Count]; //Création du tableau int rowIndex = 0; foreach (var iRowItem in iNewDataList.Enum()) { var columnIndex = 0; foreach (var iColumnItem in iRowItem.Enum()) { mergeData[rowIndex, columnIndex] = iColumnItem; columnIndex++; } rowIndex++; } //Ecriture des données dans le tableau iSimpleDataTable.SetTableData(mergeData); }
public static void AddDataToSimpleDataTable(SimpleDataTable iSimpleDataTable, List <List <string> > iNewDataList, bool iIsNewDataCanBeWider = false) { if (iNewDataList.IsNullOrEmpty()) { throw new Exception("La liste ne peut pas être null"); } var originalData = iSimpleDataTable.GetCachedTableData(); var newDataIsWider = iNewDataList.First().Count() > originalData.GetLength(0) + 1; if (iIsNewDataCanBeWider && newDataIsWider) { throw new Exception("Les nouvelles données contiennent plus de colonnes que le tableau initial"); } //Détermine les dimensions du tableau final var columnCount = 0; if (originalData.GetLength(1) > 0) { columnCount = (iNewDataList.First().Count() > originalData.GetLength(1)) ? iNewDataList.First().Count() : originalData.GetLength(1); } else { columnCount = iNewDataList.First().Count(); } var mergeData = new object[iNewDataList.Count + originalData.GetLength(0), columnCount]; //Ajout données existant dans le tableau for (int j = 0; j <= originalData.GetLength(0) - 1; j++) { for (int i = 0; i <= originalData.GetLength(1) - 1; i++) { mergeData[j, i] = originalData[j, i]; } } //Ajout des nouvelles données var rowIndex = originalData.GetLength(0); foreach (var iRowItem in iNewDataList.Enum()) { var columnIndex = 0; foreach (var iColumnItem in iRowItem.Enum()) { mergeData[rowIndex, columnIndex] = iColumnItem; columnIndex++; } rowIndex++; } iSimpleDataTable.SetTableData(mergeData); }