Witam mam problem z wczytaniem z pliku listy incydencji grafu i z odpowiednim przypisaniem danego wierzchołkowi jego sąsiadów. Mam plik ( oczywiście bez tych komentarzy ) :

4 5 // n,m n - ilość wierzchołków , m - liczba krawędzi
2 10 3 6 4 5 // wierzchołek 0 łączy się z 2 z waga 10, 0 z 3 i waga 6 no i 0 z 4 i waga
1 10 4 15 // wierzchołek 1
1 6 4 4
1 10 2 15 3 4

Mój problem polega na tym ze mam kod i działa on tak ze musze podać : z jakiego wierzchołka do jakiego idzie krawędź i jaka ma wagę np.
// Edge 0-1
graph.edge[0].Source = 0;
graph.edge[0].Destination = 1;
graph.edge[0].Weight = 10;
Wpisując to ręcznie wszystko działa ale mam problem jak muszę czytać to z pliku , próbuje robić to tak :

 using (StreamReader sr = new StreamReader("Moj_plik.txt"))
             {
                 while (sr.Peek() >= 0)
                 {
                     string str;
                     string[] strArray;
                     str = sr.ReadLine();
                     strArray = str.Split();

                     graph.edge[s].Source = p;

                     for (int k = 0; k < strArray.Length; k++)
                     {
                         Console.Write(int.Parse(strArray[k]) + " ");

                         if (k == 0 || k % 2 == 0) //jezeli parzyste to znaczy ze to jest Destination
                         {
                             graph.edge[s].Destination = int.Parse(strArray[k]);
                         }
                         else // jesli nie to Weight
                         {
                             graph.edge[s].Weight = int.Parse(strArray[k]);
                             s++;
                                 if (k != strArray.Length - 1)
                                 {
                                     graph.edge[s].Source = p;
                                 }
                         }
                     }
                     p++;
                     Console.WriteLine();
                 }
             }

Czyli idę po każdej linijce pliku ( na razie pomijam to pierwsza z liczba wierz. i krawędzi ) i jak już wejdę do danej linijki idę po każdym elemencie i jeżeli jest parzysty to znaczy ze to Destination a nieparzysty to waga , siedzę już nad tym sporo i nie mam pomysłu jak to rozwiązać. Proszę o pomoc.