Witam. Mam problem z pewnym zadaniem. Mam 2 macierze. Muszę posortować pierwszą macierz MacierzWynikowa_1[20, 32 ], a następnie do elementów posortowanej macierzy (PosortowaneDane_1), dopasować elementy drugiej macierzy (MacierzWynikowa_2). Macierz pierwsza ma być posortowana względem indeksu [j]. Próbowałem to rozwiązać za pomocą sortowania bąbelkowego w ten sposób:

int SortRozm = iloscB;
                    int[] Sortowanie = new int[iloscB];
                    string[,] PosortowaneDane_1 = new string[iloscA, iloscB];
                    string[,] PosortowaneDane_2 = new string[iloscA, iloscB];
                    int Dopasowanie = 0;

                    for (int i = 0; i < iloscA; i++)
                    {
                        SortRozm = iloscB;

                        for (int j = 0; j < iloscB; j++)
                        {
                            Sortowanie[j] = Convert.ToInt32(MacierzWynikowa_1[i, j]);
                        }

                        do
                        {
                            for (int k = 0; k < SortRozm - 1; k++)
                            {
                                if (Sortowanie[k] > Sortowanie[k + 1])
                                {
                                    int SortowanieTemp = Sortowanie[k];
                                    Sortowanie[k] = Sortowanie[k + 1];
                                    Sortowanie[k + 1] = SortowanieTemp;
                                }
                            }

                            SortRozm--;


                        } while (SortRozm > 1);

                        for (int j = 0; j < iloscGenow; j++)
                        {
                            PosortowaneDane_1[i, j] = Convert.ToString(Sortowanie[j]);
                        }
                    }

                    for (int i = 0; i < iloscA; i++) // DOPASOWANIE ELEMENTÓW DRUGIEJ MACIERZY DO POSORTOWANEJ 1 MACIERZY
                    {
                        if (i == 0) { Dopasowanie= 0; }

                        for (int j = 0; j < iloscB; j++)
                        {
                            for (int k = 0; k < iloscB; k++)
                            {
                                if (k == 0) { Dopasowanie = 0; }
                                else { Dopasowanie++; }

                                if (PosortowaneDane_1[i, j] == MacierzWynikowa_1[i, Dopasowanie])
                                {
                                    PosortowaneDane_2[i, j] = MacierzWynikowa_2[i, Dopasowanie];
                                }
                            }
                        }
                    }

Problem polega na tym, że nowa macierz zawierająca posortowane elementy (PosortowaneDane_1), zawiera ucięty string z pierwotnej macierzy (MacierzWynikowa_1).Byłbym wdzięczny za pomoc.