Recreating a Dictionary from an IEnumerable
If you’re using .NET 3.5 or .NET 4, it’s easy to create the dictionary using LINQ: Dictionary<string, ArrayList> result = target.GetComponents() .ToDictionary(x => x.Key, x => x.Value); There’s no such thing as an IEnumerable<T1, T2> but a KeyValuePair<TKey, TValue> is fine.