6

私のデータは次のようになります:

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

データセットをdoubleとstringのリストに変換できますか?データセットの最初の列はにlist<string>なり、2番目の列はになりますlist<double>

解決策はありますか?ありがとう

4

3 に答える 3

16

しかし、なぜ年が文字列なのだろうか...

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拡張メソッドを使用できます。DataRowr.Field<string>("year")

于 2013-01-04T08:24:48.297 に答える
2

このようにしてみてください。

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

そしてコラム(1)へ。sales

System.Data.DataSetExtensions名前空間を追加することを忘れないでください。MSDN DataTableExtensions.AsEnumerable()メソッドからも見てください。

ジェネリック パラメーター T が DataRow である IEnumerable オブジェクトを返します。このオブジェクトは、LINQ 式またはメソッド クエリで使用できます。

于 2013-01-04T08:25:50.513 に答える
1

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();
于 2013-01-04T08:36:05.610 に答える