【问题标题】:How to efficiently convert DataSet.Tables to List<DataTable>?如何有效地将 DataSet.Tables 转换为 List<DataTable>?
【发布时间】:2013-10-30 14:06:34
【问题描述】:

我看到很多关于将 DataSet 中的表转换为 DataRows 或其他行数据列表的帖子,但我找不到关于这个问题的任何信息。这是我使用 .Net 3.0 提出的:

    public static List<DataTable> DataSetToList(DataSet ds)
    {
        List<DataTable> result = new List<DataTable>();

        foreach (DataTable dtbl in ds.Tables)
        {
            result.Add(dtbl);
        }

        return result;
    }

有没有更好的方法,不包括扩展方法?

谢谢

【问题讨论】:

    标签: list datatable dataset c#-3.0


    【解决方案1】:

    基于Why LINQ casting with a Data.DataTableCollection,这将起作用;

    List<DataTable> result = new List<DataTable>(ds.Tables.Cast<DataTable>())
    

    【讨论】:

    • 感谢您的回复。您的答案适用于 .Net 3.5 及更高版本,除非有我遗漏的包含。我确实有 System.linq。我还发现在 .Net 3.5 及更高版本中有以下工作: List list = ds.Tables.ToList();
    • @Soenhay 你的包括什么?由于某种原因,我似乎无法使用ToList()。不过想念您寻找 .Net 3.0 选项。
    • 对不起,我弄错了,我的项目中有这个扩展方法,所以它实际上不在.net中:/// /// /// // / /// public static List ToList(this DataTableCollection tables) { List result = new List(); foreach(表中的 DataTable dtbl){ result.Add(dtbl); } 返回结果; }
    【解决方案2】:
    IEnumerable<DataTable> sequence = dt.AsEnumerable();
    

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

    【讨论】:

    • 我的意思是将一个DataTableCollection转换成一个List。 dt.AsEnumerable().ToList();返回列表.
    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 2011-09-30
    • 2011-01-17
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多