Saya memiliki metode yang mengembalikan IEnumerable<KeyValuePair<string, ArrayList>>
, tetapi beberapa penelepon membutuhkan hasil metode untuk menjadi kamus. Bagaimana saya bisa mengonversikan IEnumerable<KeyValuePair<string, ArrayList>>
ke dalam Dictionary<string, ArrayList>
sehingga saya dapat menggunakan TryGetValue
?
metode:
public IEnumerable<KeyValuePair<string, ArrayList>> GetComponents()
{
// ...
yield return new KeyValuePair<string, ArrayList>(t.Name, controlInformation);
}
penelepon:
Dictionary<string, ArrayList> actual = target.GetComponents();
actual.ContainsKey("something");
c#
collections
dictionary
ienumerable
idictionary
pelat pelajar
sumber
sumber
Jawaban:
Jika Anda menggunakan .NET 3.5 atau .NET 4, mudah untuk membuat kamus menggunakan LINQ:
Tidak ada yang namanya
IEnumerable<T1, T2>
tapiKeyValuePair<TKey, TValue>
tidak apa-apa.sumber
Dictionary
yang mengambilIEnumerable<KeyValuePair<TKey, TValue>>
sepertiList<T>
mengambilIEnumerable<T>
. Juga tidak adaAddRange
atau bahkanAdd
yang mengambil pasangan kunci / nilai. Ada apa dengan itu?ToDictionary()
Pada .NET Core 2.0, konstruktor
Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)
sekarang ada.sumber