如何有效地将DataSet.Tables转换为List<;数据表>;?

如何有效地将DataSet.Tables转换为List<;数据表>;?,list,datatable,dataset,c#-3.0,List,Datatable,Dataset,C# 3.0,我看到许多关于将数据集中的表转换为数据行列表或其他行数据的帖子,但我找不到关于这个问题的任何信息。这是我在使用.Net 3.0时想到的: public static List<DataTable> DataSetToList(DataSet ds) { List<DataTable> result = new List<DataTable>(); foreach (DataTable dtbl in ds.Ta

我看到许多关于将数据集中的表转换为数据行列表或其他行数据的帖子,但我找不到关于这个问题的任何信息。这是我在使用.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;
    }
公共静态列表datasetolist(数据集ds)
{
列表结果=新列表();
foreach(ds.Tables中的数据表dtbl)
{
结果:添加(dtbl);
}
返回结果;
}
除了扩展方法,还有更好的方法吗

谢谢

IEnumerable sequence=dt.AsEnumerable();

List List=dt.AsEnumerable().ToList();
基于此将起作用

List<DataTable> result = new List<DataTable>(ds.Tables.Cast<DataTable>())
列表结果=新列表(ds.Tables.Cast())
我的意思是将DataTableCollection转换为列表。dt.AsEnumerable().ToList();返回列表。感谢您的回复。你的答案在.NET3.5及以上版本中有效,除非我遗漏了一个包含。我有一个系统。在.NET3.5及更高版本中,我还发现了以下工作:List List=ds.Tables.ToList()@那么你的收入是多少?由于某种原因,我似乎无法使用
ToList()
。但是,您没有找到.Net 3.0选项。很抱歉,我弄错了,我的项目中有此扩展方法,因此它实际上不在.Net中://///////公共静态列表ToList(此DataTableCollection表){List result=new List();foreach(表中的数据表dtbl){result.Add(dtbl);}返回结果;}
List<DataTable> list = dt.AsEnumerable().ToList();
List<DataTable> result = new List<DataTable>(ds.Tables.Cast<DataTable>())