读书人

怎么为自定义类定义数组结构的变量

发布时间: 2012-06-11 17:42:22 作者: rapoo

如何为自定义类定义数组结构的变量

我定义了一个类是Complex; 又定义了一个类是Matrix;

public class Complex
{
double re;
double im;

public double Re
{
get { return re; }
set { re = value; }
}

public double Im
{
get { return im; }
set { im = value; }
}
}



public class Matrix
{

private ArrayList Values;

public int RowCount
{
get { return rowCount; }
}

public int ColumnCount
{
get { return columnCount; }
}

private int rowCount;

public Matrix()
{
Values = new ArrayList();
rowCount = 0;
columnCount = 0;

}
public Matrix(Complex[,] values)
{
if (values == null)
{
Values = new ArrayList();
columnCount = 0;
rowCount = 0;
}

rowCount = (int)values.GetLongLength(0);
columnCount = (int)values.GetLongLength(1);

Values = new ArrayList(rowCount);

for (int i = 0; i < rowCount; i++)
{
Values.Add(new ArrayList(columnCount));

for (int j = 0; j < columnCount; j++)
{
((ArrayList)Values[i]).Add(values[i, j]);
}
}

}
}

现在想在主程序中实现这样的操作,即:

Matrix a = new Matrix (Complex[,] b);
来建立将复数数组b中的数值赋到a 矩阵中,请问如何才能实现?

现在这种状态下, a只带有行宽,列宽属性,但Values无法获得。请问这种情况如何解决?








[解决办法]
我建议你将 Matrix 定义成 Tuple<int, int, Complex>,来表示稀疏矩阵。
或者 Complex[,]。

读书人网 >C#

热点推荐