c# - 将 DataTable 转换为通用列表<T>

标签 c# .net

我正在尝试将数据表转换为通用列表。我正在关注这篇文章。 DataTable to List<object> .

Method is 
 public static List<MProps> TableToList<T1>(DataTable dt)
        {
                if (dt == null)
            {
                return null;
            }
            List<DataRow> rows = new List<DataRow>();
            foreach (DataRow row in dt.Rows)
            {
                rows.Add(row);
            }
            return TableToList<T1>(rows);
        }

I keep getting two errors at "return TableToList<T1>(rows);" Saying 
Error 24 Argument 1: cannot convert from 'System.Collections.Generic.List<System.Data.DataRow>' to 'System.Data.DataTable' C:\Users..\Program.cs    

AND 

Error 23 The best overloaded method match for 'xx.Program.TableToList<T1>(System.Data.DataTable)' has some invalid arguments C:\Users\--\Program.cs

我不知道是什么问题。

最佳答案

使用

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

如果需要返回List

return (from DataRow row in dt.Rows
   select new MProps
   {
       //assign properties here
       prop1 = row["colname"].ToString()
   }).ToList();

关于c# - 将 DataTable 转换为通用列表<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17129892/

相关文章:

c# - 同一个类实现,只是父级不同,如何处理?

c# - 在android中访问azure中的机器人

c# - 使用 Linq To Twitter 获取所有关注者

.net - 如何将参数传递给 BootstrapperFile?

c# - 如何在字典中制作通用 Func<T>

c# - 使用 System.Drawing.Font 限制字体大小?

.net - 什么 "Current"属性与 ExecutionContext 一起流动

c# - 如何获取主线程并设置其优先级

c# - Entity Framework 迁移未检测到任何更改

c# - Protobuf-net 似乎是对值类型进行包装。事实是这样吗?