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

Rob*_*ert 4 c# linq arrays collections datatable

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

string [] IDs = (from row in DataTable.Rows
                select row["ID"].toString()).ToArray();
Run Code Online (Sandbox Code Playgroud)

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

Ahm*_*eed 5

使用DataTableExtensions.AsEnumerable方法通过将参考System.Data.DataSetExtensionsusing System.Data;那么你应该可以使用下面的查询:

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

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

用流利的语法,它将是:

string[] ids = datatable.AsEnumerable()
                        .Select(row => row["ID"].ToString())
                        .ToArray();
Run Code Online (Sandbox Code Playgroud)