Воссоздание Словаря от IEnumerable <KeyValuePair <>>

У меня есть метод, который возвращается IEnumerable<KeyValuePair<string, ArrayList>>, но некоторые вызывающие стороны требуют, чтобы результатом метода был словарь. Как я могу преобразовать IEnumerable<KeyValuePair<string, ArrayList>> в a Dictionary<string, ArrayList> так, чтобы я мог использовать TryGetValue?

метод:

public IEnumerable<KeyValuePair<string, ArrayList>> GetComponents()
{
  // ...
  yield return new KeyValuePair<string, ArrayList>(t.Name, controlInformation);
}

вызывающая сторона:

Dictionary<string, ArrayList> actual = target.GetComponents();
actual.ContainsKey("something");
164
задан BartoszKP 13 May 2015 в 09:18
поделиться

1 ответ

Если вы используете .NET 3.5 или .NET 4, легко создать словарь с помощью LINQ:

Dictionary<string, ArrayList> result = target.GetComponents()
                                      .ToDictionary(x => x.Key, x => x.Value);

Нет такой вещи, как IEnumerable , но KeyValuePair в порядке.

308
ответ дан 23 November 2019 в 21:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: