l'index était hors limite
J'ai développé un bout de code permettant de découper les valeurs d'une cellule en excel en mettant une valeur par ligne et j'ai eu l'erreur suivante:
"L'index était hors limite. il ne doit pas être négatif et doit être inférieur à la taille de la nom du paramètre: index"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
private DataTable trasnformDT(DataTable dt1)
{
DataTable dt = dt1.Clone();
int i = 0;
foreach (DataRow row in dt1.Rows)
{
List<string> Word_countLst = row["Word_count"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',').ToList();
List<string> command_addressLst = row["command_address"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',').ToList();
List<string> response_addressLst = row["response_address"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',').ToList();
string[] Register_numberLst = row["Register_number"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',');
string[] Register_valueLst = row["Register_value"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',');
if (row["Word_count"].ToString().Trim() == "[]")
{
if (command_addressLst.Count() == response_addressLst.Count())
{
int j = 0;
foreach (string item in command_addressLst)
{
// long cacount = Int64.Parse(item);
DataRow dr = dt.NewRow();
dr.ItemArray = row.ItemArray;
dr["command_address"] = command_addressLst[j];
dr["response_address"] = response_addressLst[j];
dt.Rows.Add(dr);
j++;
}
}
}
else
{
foreach (string item in Word_countLst)
{
long wcount = Int64.Parse(item);
for (int j = 0; j < wcount; j++)
{
DataRow dr = dt.NewRow();
dr.ItemArray = row.ItemArray;
dr["Word_count"] = item;
dr["Register_number"] = Register_numberLst[j];
dr["Register_value"] = Register_valueLst[j];
dr["command_address"] = command_addressLst[j];
dr["response_address"] = response_addressLst[j];
dt.Rows.Add(dr);
}
}
}
i++; |
L'erreur concerne cette variable: command_addressLst et pourtant j'ai bien vérifié la taille de command_address et de response_address avec word_count
Merci de votre aide