我的数据如下:
+=======+========+
| year |sales |
+=======+========+
| 2008 |100000 |
| 2009 |120040 |
| 2010 |239000 |
| 2011 |300900 |
| 2012 |200900 |
+=======+========+
我可以将数据集转换为double和string的列表吗?数据集的第一列为list<string>
,第二列为list<double>
有什么解决方案吗?感谢
答案 0 :(得分:14)
我想知道为什么一年是字符串,但是......
List<string> years = dataSet.Tables[0].AsEnumerable()
.Select(r => r.Field<string>(0))
.ToList();
List<double> doubles = dataSet.Tables[0].AsEnumerable()
.Select(r => r.Field<double>(1))
.ToList();
请注意,您需要添加using System.Linq;
。
您可以将Field
extension方法与DataRow
中的列序号或其名称一起使用:r.Field<string>("year")
答案 1 :(得分:1)
试试这个;
List<string> years = dataSet.Tables[0].AsEnumerable()
.Select(n => n.Field<string>(0))
.ToList();
(1)
列sales
。
不记得添加System.Data.DataSetExtensions
命名空间。另请参阅MSDN DataTableExtensions.AsEnumerable()方法。
返回一个IEnumerable对象,其中泛型参数为T. DataRow中。该对象可用于LINQ表达式或方法查询。
答案 2 :(得分:0)
1)
var myyear = ds.Tables[0].AsEnumerable()
.Select(r => new {
column1 = r.Field<string>("year")
});
List<string> year = myyear.ToList();
2)
var mysales = ds.Tables[0].AsEnumerable()
.Select(r => new {
column2 = r.Field<double>("sales")
});
List<double> sales = mysales.ToList();