Exemple #1
0
        public IDataMatrix Build()
        {
            var cols       = DataMatrixFactory.GetColumns(_columnHeaders, _columnHeaders, _dependentColumns.ToArray(), false);
            var colIndexes = DataMatrixFactory.GetDependencySortOrder(cols);

            //create data matrix

            var dm = new DataMatrixLite(_arrValues.GetLength(0), cols.ToArray());

            for (var rowIndex = 0; rowIndex < _arrValues.GetLength(0); rowIndex++)
            {
                foreach (var colIndex in colIndexes)
                {
                    var myCol = cols[colIndex];
                    if (myCol.Compute == null)
                    {
                        dm[rowIndex][colIndex] = _arrValues[rowIndex, colIndex];
                    }
                }
            }

            //update computed columns
            dm.ComputeDependentCols(colIndexes);

            return(dm);
        }
Exemple #2
0
        public static DataMatrixBuilder Create <T>(IEnumerable <T> values,
                                                   params Expression <Func <T, object> >[] valueSelectors)
        {
            var headers   = valueSelectors.Select(func => DataMatrixFactory.GetProperty(func).Name).ToArray();
            var selectors = valueSelectors.Select(exp => exp.Compile()).ToArray();

            return(Create(values.ToArray(), headers, selectors));
        }