public Matrix <int> ToMatrix() { return(new Matrix <int> { XHeaders = XHeaders.ToList(), YHeaders = YHeaders.ToList(), Cells = ConvertToCells() }); }
public Matrix(IList <string> xHeaders, IList <string> yHeaders, IEnumerable <IMatrixable <TValue> > items) : this(xHeaders, yHeaders) { foreach (var item in items) { var xHeaderIndex = XHeaders.IndexOf(item.XHeader); var yHeaderIndex = YHeaders.IndexOf(item.YHeader); Cells[xHeaderIndex][yHeaderIndex] = new Cell <TValue>(item.Value); } }
public Cell <int>[][] ConvertToCells() { var cells = new Cell <int> [XHeaders.Count()][]; for (var i = 0; i < XHeaders.Count(); i++) { cells[i] = new Cell <int> [YHeaders.Count()]; for (var j = 0; j < YHeaders.Count(); j++) { cells[i][j] = new Cell <int>(Cells[i][j]); } } return(cells); }
//По попаданию в интервал private int?get_index_by_value_x(double x) { //Последнюю границу включаем if (x == XHeaders.Last().Right) { return(XHeaders.Length - 1); } for (int i = 0; i < XHeaders.Length; i++) { var interval = XHeaders[i]; if ((x >= interval.Left) && (x < interval.Right)) { return(i); } } return(null); }
public TValue ValueAt(string xHeader, string yHeader) => Cells[XHeaders.IndexOf(xHeader)][YHeaders.IndexOf(yHeader)].Value;