Bonjour à tous,

J'essai de comprendre pourquoi ma simple boucle for est lente.
En commentaire le code initial que j'ai transformé en une imbrication de if else.
Est ce que quelqu'un peut m'aider pour améliorer les temps de réponse ?

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
61
62
63
64
65
66
67
 
 
string[] sTab = new string[200000];
            string sXlsReturn = "";
 
            for (int i = 0; i < sTab.Length; i++)
                sTab[i] = i.ToString();
 
            for (int i = 2; i <= sTab.Length - 2; i += 12)
            {             
                sXlsReturn += "<tr>";
 
                try
                {
                    /*sXlsReturn +=
                        "<td>" + (i + 1 < sTab.Length ? (sTab[i + 1] != "" ? double.Parse(sTab[i + 1]).ToString() : sTab[i + 1]) + "</td>" : "</td>") +
                        "<td>" + (i + 3 < sTab.Length ? (sTab[i + 3] != "" ? double.Parse(sTab[i + 3]).ToString() : sTab[i + 3]) + "</td>" : "</td>") +
                        "<td>" + (i + 5 < sTab.Length ? (sTab[i + 5] != "" ? double.Parse(sTab[i + 5]).ToString() : sTab[i + 5]) + "</td>" : "</td>") +
                        "<td>" + (i + 7 < sTab.Length ? (sTab[i + 7] != "" ? double.Parse(sTab[i + 7]).ToString() : sTab[i + 7]) + "</td>" : "</td>") +
                        "<td>" + (i + 9 < sTab.Length ? (sTab[i + 9] != "" ? double.Parse(sTab[i + 9]).ToString() : sTab[i + 9]) + "</td>" : "</td>") +
                        "<td>" + (i + 11 < sTab.Length ? (sTab[i + 11] != "" ? double.Parse(sTab[i + 11]).ToString() : sTab[i + 11]) + "</td>" : "</td>");*/
 
                    if (i + 1 < sTab.Length)
                    {
                        if (sTab[i + 1] != "")
                            sXlsReturn = string.Concat(sXlsReturn, "<td>", double.Parse(sTab[i + 1]).ToString(), "</td>");
                        else sXlsReturn = string.Concat(sXlsReturn,"<td></td>");
                    }
 
                    if (i + 3 < sTab.Length)
                    {
                        if (sTab[i + 3] != "")
                            sXlsReturn = string.Concat(sXlsReturn, "<td>", double.Parse(sTab[i + 3]).ToString(), "</td>");
                        else sXlsReturn = string.Concat(sXlsReturn, "<td></td>");
                    }
 
                    if (i + 5 < sTab.Length)
                    {
                        if (sTab[i + 5] != "")
                            sXlsReturn = string.Concat(sXlsReturn, "<td>", double.Parse(sTab[i + 5]).ToString(), "</td>");
                        else sXlsReturn = string.Concat(sXlsReturn, "<td></td>");
                    }
 
                    if (i + 7 < sTab.Length)
                    {
                        if (sTab[i + 7] != "")
                            sXlsReturn = string.Concat(sXlsReturn, "<td>", double.Parse(sTab[i + 7]).ToString(), "</td>");
                        else sXlsReturn = string.Concat(sXlsReturn, "<td></td>");
                    }
 
                    if (i + 9 < sTab.Length)
                    {
                        if (sTab[i + 9] != "")
                            sXlsReturn = string.Concat(sXlsReturn, "<td>", double.Parse(sTab[i + 9]).ToString(), "</td>");
                        else sXlsReturn = string.Concat(sXlsReturn, "<td></td>");
                    }
 
                    if (i + 11 < sTab.Length)
                    {
                        if (sTab[i + 11] != "")
                            sXlsReturn = string.Concat(sXlsReturn, "<td>", double.Parse(sTab[i + 11]).ToString(), "</td>");
                        else sXlsReturn = string.Concat(sXlsReturn, "<td></td>");
                    }
                }
                catch (IndexOutOfRangeException) { }
            }
        }