Как отсортировать столбцы в матрице c#?

Есть у меня матрица с числами и нужно отсортировать её по суме модулей положительных чисел в столбцах (по убыванию). Когда дело дошло до самой сортировки - я сломался.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace console_2D
{
    public struct Count
    {
        public double sum; // - сума стовпця
    }
    class Program
    {
        static void Main()
        {
            Console.InputEncoding = Encoding.Default;
            Console.OutputEncoding = Encoding.Default;
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            Random rand = new Random();

            int n, k;
            Console.Write("Количество строк: ");
            while (!int.TryParse(Console.ReadLine(), out n) || n <= 0)
                Console.WriteLine("Ошибка ввода\nn = ");

            Console.Write("Количество столбцов: ");
            while (!int.TryParse(Console.ReadLine(), out k) || k <= 0)
                Console.WriteLine("Некоректні дані\nk = ");
            double[,] matrix = new double[n, k];

     
            Count[] sum_pos_colums = new Count[k];
            bool negative;
            int n_elements = 0;
            for (int i = 0; i < n; i++)
            {
                negative = true;
                for (int j = 0; j < k; j++)
                {
                    matrix[i, j] = Math.Round(rand.NextDouble() * (18.4 + 27.8) - 27.8, 1);
                    Console.Write($"{matrix[i, j]} ");

                    if (matrix[i, j] > 0)
                        negative = false;
                }
                Console.WriteLine();

                if (negative)
                    n_elements++;
            }
            Console.WriteLine($"Всего {n_elements} строк без положительных элементов.");
            for (int j = 0; j < k; j++)
            {
                for (int i = 0; i < n; i++)
                {
                    if (matrix[i, j] > 0)
                        sum_pos_colums[j].sum += (matrix[i, j]);
                }
                Console.WriteLine($"Cума модулей положительных элементов {j+1} столбца= {sum_pos_colums[j].sum};");


            }
        }
    }
}

Есть матрица:

1 cтолбик [4.4, -6.6, 15.6, 13.1, -0.5]
2 столбик [-2.3, -3.3, 10.1, 3.8, -14.6]
3 столбик [5.6, 3.7, 5, 16.6, -26.9]
4 столбик [-9, 9.4, 2.7, -16.9, -10.2]
5 столбик [18.2, 5.8, -26.3, 17.3, 5.5]

Сума модулей в 1 = 25.4 в 2 =12.4 в 3 =32.4 в 4 =30.3 в 5=8.3

Значит нужно разместить столибки : 3, 4, 1, 2, 5


Ответы (0 шт):