Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSV string to DataTable

I have following string, I want to convert it to DataTable

"Id,Name ,Dept\r\n1,Mike,IT\r\n2,Joe,HR\r\n3,Peter,IT\r\n"

I can create it using String.Split and iterating through collection. But I need efficient way (using C# 4.0 features) How to create table using LINQ or lambda.

like image 983
meetjaydeep Avatar asked Apr 19 '11 11:04

meetjaydeep


1 Answers

I don't know if that what are you looking for :

string s = "Id,Name ,Dept\r\n1,Mike,IT\r\n2,Joe,HR\r\n3,Peter,IT\r\n";
        DataTable dt = new DataTable();

        string[] tableData = s.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
        var col = from cl in tableData[0].Split(",".ToCharArray())
                  select new DataColumn(cl);
        dt.Columns.AddRange(col.ToArray());

        (from st in tableData.Skip(1)
         select dt.Rows.Add(st.Split(",".ToCharArray()))).ToList();
like image 198
AlaaL Avatar answered Sep 26 '22 18:09

AlaaL