将数据表的所有列转换为字符串列表

时间:2013-11-18 12:20:31

标签: c# linq

我想将数据表的列转换为字符串列表

我在stackoverflow上找到了许多链接,但这不符合我的要求

我尝试了几个选项

List<string> lstColumnList1 = dtAllRows.Columns.Cast<string>().ToList();3
List<string> lstColumnList =  dtAllRows.AsEnumerable().Select(x => x[0].ToString()).ToList();

我不想运行列循环 但注意工作。请帮忙。

2 个答案:

答案 0 :(得分:9)

获取列名

var columns = table.Columns
                   .Cast<DataColumn>()
                   .Select(x => x.ColumnName)
                   .ToList();

如果您的意思是第一列的值使用此

var rowValues = table.AsEnumerable()
                     .Select(x => x.Field<string>("YourColumn"))
                     .ToList();

答案 1 :(得分:2)

试试这个:

var columnsList = dtAllRows.AsEnumerable()
                  .SelectMany(row=>dtAllRows.Columns.Cast<DataColumn>()
                                            .Select(col=>Convert.ToString(row[col])))
                  .ToList();
//Example:
//A1   B1
//A2   B2
//-> List<string> {"A1","B1","A2","B2"}