转换数据集为list和list< string>c#

本文关键字:list string 数据集 转换 double | 更新日期: 2023-09-27 17:50:34

我的数据是这样的:

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

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

有解决方案吗?由于

转换数据集为list<double>和list< string>c#

我想知道为什么一年是一个字符串,但是…

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扩展方法与DataRow中的列的序数或通过它的名称:r.Field<string>("year")

试试;

List<string> years   = dataSet.Tables[0].AsEnumerable()
                            .Select(n => n.Field<string>(0))
                            .ToList();

sales列,(1)列。

不要忘记添加System.Data.DataSetExtensions命名空间。还可以查看from MSDN DataTableExtensions.AsEnumerable()方法。

返回一个IEnumerable对象,其中泛型形参T所在我们应该。该对象可用于LINQ表达式或方法查询。

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