2011-02-07 48 views
0

我想将datatable转换为List。你能帮我解答一下吗?DataTable select help

  var result = DataTable1.AsEnumerable().Select(e => {e.Field<int>("MID"), e.Field<string>("MTX")}).ToList(); 
     JavaScriptSerializer ser = new JavaScriptSerializer(); 
     string json = ser.Serialize(result); 

谢谢。

回答

1

您需要为您提供Select调用中的属性名称。在这种特殊情况下,这些名称不会自动而明确地解决。尝试

var result = DataTable1.AsEnumerable().Select(row => new { Mid = row.Field<int>("Mid"), MTX = row.Field<string>("MTX") }); 
JavaScriptSerializer serializer = new JavaScriptSerializer(); 
string json = serializer.Serialize(result); 

这些名称将成为json结果的一部分。如

[{"Mid":1,"MTX":"A"},{"Mid":2,"MTX":"B"}] 
+0

谢谢安东尼。现在正在工作。 – nav100 2011-02-07 18:37:12

0
IEnumerable<DataRow> sequence = dt.AsEnumerable(); 

List<DataRow> list = dt.AsEnumerable().ToList(); 
0

尝试:

var result = DataTable1.AsEnumerable() 
    .Select(e => new object[] { e.Field<int>("MID"), e.Field<string>("MTX") }) 
    .ToList();