Exemplo n.º 1
0
 public Matrix <int> ToMatrix()
 {
     return(new Matrix <int>
     {
         XHeaders = XHeaders.ToList(),
         YHeaders = YHeaders.ToList(),
         Cells = ConvertToCells()
     });
 }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
 public TValue ValueAt(string xHeader, string yHeader) =>
 Cells[XHeaders.IndexOf(xHeader)][YHeaders.IndexOf(yHeader)].Value;