IEnumerable<KeyValuePair<string, ArrayList>>
を返すメソッドがありますが、呼び出し元の一部はメソッドの結果が辞書である必要があります。 TryGetValue
を使用できるようにIEnumerable<KeyValuePair<string, ArrayList>>
をDictionary<string, ArrayList>
に変換するにはどうすればよいですか?
方法:
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);
IEnumerable<T1, T2>
のようなものはありませんが、KeyValuePair<TKey, TValue>
は問題ありません。