从数据表中获取ID(值)数组

时间:2011-06-07 15:44:38

标签: c# arrays linq collections datatable

我有一个50行的数据并且有一个ID列。我试图得到一个只包含ID的数组:

string [] IDs = (from row in DataTable.Rows
                select row["ID"].toString()).ToArray();

有没有办法做到这一点。我总是收到错误“无法找到他执行查询....”

2 个答案:

答案 0 :(得分:5)

使用DataTableExtensions.AsEnumerable method添加对System.Data.DataSetExtensionsusing System.Data;的引用然后您应该可以使用以下查询:

var query = from row in datatable.AsEnumerable()
            select row["ID"].ToString();
string[] ids = query.ToArray();

如果你真的需要一个数组,你可以使用上面的最后一行或将查询括在括号中,并像你原来那样调用ToArray()。我一般不喜欢后一种方法。

用流利的语法表示:

string[] ids = datatable.AsEnumerable()
                        .Select(row => row["ID"].ToString())
                        .ToArray();

答案 1 :(得分:0)

无论如何,您可以选择列表数据表到客户对象数组中。假设所有列都相同。