简单问题。我有一个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