如何有效地将DataSet.Tables转换为List<DataTable>?

5

我发现很多关于将DataSet中的表格转换为DataRow列表或其他行数据的帖子,但我找不到任何关于这个问题的内容。在使用 .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;
    }

有没有更好的方法,除了使用扩展方法?谢谢。
2个回答

9

感谢您的回复。除非我漏掉了某个包含文件,否则您的答案适用于 .Net 3.5 及以上版本。我确实有 System.linq。我还发现在 .Net 3.5 及更高版本中,以下代码也可以使用:List<DataTable> list = ds.Tables.ToList(); - Soenhay
@Soenhay,你的include是什么?我似乎无法使用ToList(),不知道为什么。不过我注意到你在寻找一个 .Net 3.0 的选项。 - Dave Anderson
对不起,我弄错了,我的项目中有这个扩展方法,它实际上并不在 .net 中: /// /// /// /// /// public static List ToList(this DataTableCollection tables) { List result = new List(); foreach (DataTable dtbl in tables) { result.Add(dtbl); } return result; } - Soenhay

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

或者

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

1
我的意思是将 DataTableCollection 转换为 List<DataTable>。 dt.AsEnumerable().ToList(); 返回 List<DataRow>。 - Soenhay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接