Проблема в заполнении словаря с использованием перечисленного. Range ()

StackOverflow https://stackoverflow.com/questions/2757512

  •  02-10-2019
  •  | 
  •  

Вопрос

Если я сделаю

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

Он работает нормально.

Когда я пробую то же самое, используя

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

Я получаю ошибку времени компиляции

Тип аргументов для метода 'System.linq.enumerable.select (System.collections.generic.Ienumerable, System.func) «не может быть выведен из использования. Попробуйте указать аргументы типа явно.

Есть идеи?

Использование C#3.0

Спасибо

Это было полезно?

Решение

Enumerable.Range(0, appSettings.Count).Select(i =>
new  
{   
   Key = appSettings.Keys[i],
   Value = appSettings[i]
})
.ToDictionary(x => x.Key, x => x.Value);

Другие советы

Enumerable.Range(0, appSettings.Count)
          .ToDictionary(
              i => appSettings.Keys[i],
              i => appSettings[i]);
???????, ? ??????? ?????

Enumerable.Range(0, appSettings.Count).ToList().ForEach(i =>
{ 
   euFileDictionary.Add(appSettings.Keys[i], appSettings[i]);
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top