首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将DataTable列转换为列表

如何将DataTable列转换为列表
EN

Stack Overflow用户
提问于 2011-07-08 06:19:27
回答 6查看 137.7K关注 0票数 75

我有一个包含多列的DataTable。我想从DataTable的第一列中获取一个List<String>。我该怎么做呢?

EN

回答 6

Stack Overflow用户

发布于 2011-07-08 10:48:08

试试这个:

代码语言:javascript
复制
static void Main(string[] args)
{
    var dt = new DataTable
    {
        Columns = { { "Lastname",typeof(string) }, { "Firstname",typeof(string) } }
    };
    dt.Rows.Add("Lennon", "John");
    dt.Rows.Add("McCartney", "Paul");
    dt.Rows.Add("Harrison", "George");
    dt.Rows.Add("Starr", "Ringo");

    List<string> s = dt.AsEnumerable().Select(x => x[0].ToString()).ToList();

    foreach(string e in s)
        Console.WriteLine(e);

    Console.ReadLine();
}
票数 88
EN

Stack Overflow用户

发布于 2011-07-08 06:30:20

这就是你要的。

代码语言:javascript
复制
           DataTable defaultDataTable = defaultDataSet.Tables[0];
           var list = (from x in defaultDataTable.AsEnumerable()
                    where x.Field<string>("column1") == something
                    select x.Field<string>("column2")).ToList();

如果您需要第一列

代码语言:javascript
复制
           var list = (from x in defaultDataTable.AsEnumerable()
                    where x.Field<string>(1) == something
                    select x.Field<string>(1)).ToList();
票数 9
EN

Stack Overflow用户

发布于 2011-07-08 06:33:51

这是你需要的吗?

代码语言:javascript
复制
DataTable myDataTable = new DataTable();
List<int> myList = new List<int>();
foreach (DataRow row in myDataTable.Rows)
{
    myList.Add((int)row[0]);
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6617804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档