/// <summary>
        /// Возвращает строкове представление матрицы, в котором под каждый элемент выделено одинаковое количество места
        /// </summary>
        public static string ToFormatedString <T>(this Matrix <T> matrix)
        {
            StringBuilder sb           = new StringBuilder();
            int           formatLenght = matrix.Longest().ToString().Length;

            for (int i = 0; i < matrix.Rows; i++)
            {
                for (int j = 0; j < matrix.Columns; j++)
                {
                    sb.Append(
                        string.Format($"{{0,{formatLenght + 1}}}",
                                      matrix[i][j])
                        );
                }
                sb.AppendLine();
            }
            return(sb.ToString());
        }