小编典典

从 IEnumerable 重新创建字典>

all

我有一个返回 的方法IEnumerable<KeyValuePair<string, ArrayList>>,但是一些调用者要求方法的结果是字典。如何将其转换IEnumerable<KeyValuePair<string, ArrayList>>为 aDictionary<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");

阅读 60

收藏
2022-06-28

共1个答案

小编典典

如果您使用 .NET 3.5 或 .NET 4,使用 LINQ 创建字典很容易:

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

没有 a 这样的东西,IEnumerable<T1, T2>但是 aKeyValuePair<TKey, TValue>很好。

2022-06-28