将数据集转换为列表<double>并列出<string> C#</string> </double>

时间:2013-01-04 08:21:44

标签: c# list dataset

我的数据如下:

+=======+========+
| year  |sales   |
+=======+========+
| 2008  |100000  |
| 2009  |120040  |
| 2010  |239000  |
| 2011  |300900  |
| 2012  |200900  |
+=======+========+

我可以将数据集转换为double和string的列表吗?数据集的第一列为list<string>,第二列为list<double>

有什么解决方案吗?感谢

3 个答案:

答案 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();