使用select将DataTable转换为数组

时间:2013-12-03 11:07:08

标签: c# asp.net

我正在尝试使用SelecttoArray将DataTable转换为数组我执行了此操作:

List<int> LevelsArray = CardServiceDetailsDt.Select("LEVEL_ID").ToList<int>(); 

但是会产生错误

'System.Data.DataRow[]' does not contain a definition for 'ToArray' and the best extension method overload 'System.Linq.Enumerable.ToArray<TSource>(System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments

3 个答案:

答案 0 :(得分:1)

Select会为您过滤行,但看起来您想要获取一列中的所有值,因此您无法使用Select,请尝试相反:

var rows = CardServiceDetailsDt.AsEnumerable()
                 .Select(row=>row.Field<long>("LEVEL_ID")).ToArray();

答案 1 :(得分:0)

您可以使用AsEnumerable()来调用ToArray()并使用Field来获取数据表的列值。

ObjDt.AsEnumerable().Select
            (r => r.Field<string>("LEVEL_ID")).ToArray();

答案 2 :(得分:0)

var array = CardServiceDetailsDt.Rows[i]
                                .ItemArray
                                .Select(x => x.ToString())
                                .ToArray();

我是该行的索引。