Упорядочить строки целочисленной прямоугольной матрицы по возрастанию - C#
Формулировка задачи:
Здраствуйте уважаемые программисты. Не поможите ли вы мне с решением лабораторной работы на тему двумерные массивы сделанная через метод? Вот задание:
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке.
Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.
За ранее спасибо!!!
Решение задачи: «Упорядочить строки целочисленной прямоугольной матрицы по возрастанию»
textual
Листинг программы
int[,] A = new int[,] { {1,3,3},{2,3,5},{4,4,4} };
//Прежде всего групируем элементы построчно
int k = 0, m = A.GetLength(1);
var Rows = A.Enumerator<int>().GroupBy(x => (k++ / m)).ToArray();
//Вычисляем отметки(количество повторений элементов для каждой строки)
int[] Labels =
Array.ConvertAll<IGrouping<int,int>,int>
(
Rows, row => Array.ConvertAll<int, int>(row.ToArray(), x => row.Where(y => y == x).Count()).Max()
);
//Сортируем массив строк согласно массиву меток
Array.Sort(Labels, Rows);
foreach (var row in Rows)
{
foreach (var e in row)
Console.Write(e + " ");
Console.WriteLine();
}