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 : Sélectionner tout - Visualiser dans une fenêtre à part
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