Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem in populating a dictionary using Enumerable.Range()

If I do

for (int i = 0; i < appSettings.Count; i++)
{
   string key = appSettings.Keys[i];
   euFileDictionary.Add(key, appSettings[i]);
}

It is working fine.

When I am trying the same thing using

Enumerable.Range(0, appSettings.Count).Select(i =>
{
   string Key = appSettings.Keys[i];
   string Value = appSettings[i];
   euFileDictionary.Add(Key, Value);
}).ToDictionary<string,string>();

I am getting a compile time error

The type arguments for method 'System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable, System.Func)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

Any idea?

Using C#3.0

Thanks

like image 907
Newbie Avatar asked May 03 '10 10:05

Newbie


2 Answers

Enumerable.Range(0, appSettings.Count).Select(i =>
new  
{   
   Key = appSettings.Keys[i],
   Value = appSettings[i]
})
.ToDictionary(x => x.Key, x => x.Value);
like image 70
leppie Avatar answered Nov 17 '22 20:11

leppie


Enumerable.Range(0, appSettings.Count)
          .ToDictionary(
              i => appSettings.Keys[i],
              i => appSettings[i]);
like image 25
Thomas Levesque Avatar answered Nov 17 '22 21:11

Thomas Levesque