簡單問題。我有一個Dictionary<int, double>
,我希望從列DataTable
填充。因此,對於與單個列一個DataTable
:將單列數據錶轉換爲索引爲鍵的字典
23.9
39009.0
32.99
12.1
我想Dictionary<int, double>
與
{ 1, 23.9 },
{ 2, 39009.0 },
{ 3, 32.99 },
{ 4, 12.1 }
其中鍵是自動遞增。要做到這一點,我寫了一些基本的代碼:
Dictionary<int, double> d = new Dictionary<int, double>();
List<double> tmp = dataTable.AsEnumerable()
.Select(c => Double.Parse(c[i].ToString())).ToList();
int index = 1;
foreach (var j in tmp)
d.Add(index++, j);
我可以用一個查詢做LINQ嗎?我不是一個LINQ粉絲男孩,他喜歡爲了它而寫它,但我確實喜歡更好的LINQ技能,而且我似乎無法用一個LINQ查詢來解決這個問題,儘管它是可能可能。
謝謝你的時間。
這很甜。我不熟悉'new {row,index}在這裏做什麼。你能詳細說明嗎? – MoonKnight
這就是所謂的[匿名類型](http://msdn.microsoft.com/en-us/library/bb397696.aspx)類似於沒有名字的類。它有兩個屬性(在這種情況下):具有正確類型的'row'和'index'('DataRow' +'int')。我需要'ToDictionary'。但是因爲只有['Select'](http://msdn.microsoft.com/en-us/library/bb534869(v = vs.110).aspx)(和'Where')有一個超載,它給了我索引在序列中的元素我需要堅持它以某種方式。 –
@Killercam - Tim正在使用select元素值和索引來創建一個在投影序列中同時具有這兩個值的新類型。 – Hogan