Обеспечить операторы преобразования матрицы к типу double[] и наоборот - от типа double[] к матрице - C#
Формулировка задачи:
Здравствуйте.
Выполняю лабораторную работу, по заданию которой необходимо создать класс "Матрица" со всякими там "наворотами".
Очередной раз споткнулся на задании:
"Обеспечить операторы преобразования матрицы к типу double[] (при этом элементы матрицы должны располагаться в результирующем массиве построчно), и наоборот - от типа double[] к матрице."
Первая часть вроде понятно -- беру элементы матрицы и записываю в массив double[]. А вот наоборот -- чего-то не очень: как из одномерного массива сделать двумерный -- надо же размерность знать.
Или я чего-то не так понял?
С уважением, Владислав.
Решение задачи: «Обеспечить операторы преобразования матрицы к типу double[] и наоборот - от типа double[] к матрице»
textual
Листинг программы
public static implicit operator Matrix(double[] dimArr)
{
double dimension = System.Math.Sqrt(dimArr.Length);
if ((dimArr.Length % dimension) != 0)
throw new ArgumentException("Невозможно выполнить преобразование из-за неподходящего количества элементов в массиве");
Matrix A = new Matrix((int)dimension);
int k=0;
for (int i = 0; i < A.Rows; i++)
for (int j = 0; j < A.Cols; j++)
A[i, j] = dimArr[k++];
return A;
}