我有一个返回 的方法IEnumerable<KeyValuePair<string, ArrayList>>,但是一些调用者要求方法的结果是字典。如何将其转换IEnumerable<KeyValuePair<string, ArrayList>>为 aDictionary<string, ArrayList>以便我可以使用TryGetValue?
IEnumerable<KeyValuePair<string, ArrayList>>
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");
如果您使用 .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>很好。
IEnumerable<T1, T2>
KeyValuePair<TKey, TValue>