Example #1
0
        public static DataMap FromJagged <T>(T[][] source, string[] columnNames = null, bool transpose = false, IEqualityComparer <string> keyComparaer = null)
        {
            var result = new DataMap(keyComparaer);

            if (!transpose)
            {
                if (columnNames == null)
                {
                    var c = source[0].Length;
                    columnNames = new string[c];
                    for (var i = 0; i < c; ++i)
                    {
                        columnNames[i] = "Column" + i;
                    }
                }

                for (var i = 0; i < columnNames.Length; ++i)
                {
                    var data = new List <T>(source.Length);
                    result.Add(columnNames[i], data);
                    for (var j = 0; j < source.Length; ++j)
                    {
                        var row = source[j];
                        if (i < row.Length)
                        {
                            data.Add(row[i]);
                        }
                        else
                        {
                            data.Add(TypeTrait <T> .GetNaN());
                        }
                    }
                }
            }
            else
            {
                if (columnNames == null)
                {
                    var c = source.Length;
                    columnNames = new string[c];
                    for (var i = 0; i < c; ++i)
                    {
                        columnNames[i] = "Column" + i;
                    }
                }

                for (var i = 0; i < columnNames.Length; ++i)
                {
                    result.Add(columnNames[i], source[i]);
                }
            }

            return(result);
        }
Example #2
0
        public static DataMap From2DArray <T>(T[,] source, string[] columnNames = null, IEqualityComparer <string> keyComparaer = null)
        {
            if (columnNames == null)
            {
                var c = source.GetLength(1);
                columnNames = new string[c];
                for (var i = 0; i < c; ++i)
                {
                    columnNames[i] = "Column" + i;
                }
            }

            var result = new DataMap(keyComparaer);

            for (var i = 0; i < source.GetLength(1); ++i)
            {
                var data = new List <T>(source.Length);
                result.Add(columnNames[i], data);
                for (var j = 0; j < source.GetLength(0); ++j)
                {
                    data.Add(source[j, i]);
                }
            }

            return(result);
        }