206 Stimmen

Wie konvertiert man eine DataTable in eine generische Liste?

Derzeit verwende ich:

DataTable dt = CreateDataTableInSomeWay();

List<DataRow> list = new List<DataRow>(); 
foreach (DataRow dr in dt.Rows)
{
    list.Add(dr);
}

Gibt es einen besseren/zauberhaften Weg?

0voto

Ali Amini Punkte 176

Versuchen Sie dies mit Newtonsoft Json:

var json = JsonConvert.SerializeObject(dataTable);
var YourConvertedDataType = JsonConvert.DeserializeObject<YourDataType>(json);

0voto

bobt Punkte 1

Um die List von Werten anstelle von ItemArray tun Sie dies:

List<string> s = dt.AsEnumerable().Select(x => x[0].ToString()).ToList();

Die obigen Ausführungen gehen davon aus, dass Sie eine Liste von String-Werten aus Spalte 0 benötigen.

-1voto

So weisen Sie die DataTable-Zeilen der generischen Liste der Klasse

  List<Candidate> temp = new List<Candidate>();//List that holds the Candidate Class,
    //Note:The Candidate class contains RollNo,Name and Department
    //tb is DataTable
    temp = (from DataRow dr in tb.Rows
                        select new Candidate()
                        {
                            RollNO = Convert.ToInt32(dr["RollNO"]),
                            Name = dr["Name"].ToString(),
                            Department = dr["Department"].ToString(),

                        }).ToList();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X