0

Dictionary<Key, IList<Days>> days変換できるように、 foreach ループで反復処理する必要がありますDictionary<Key, IList<string>> days2。私は以下を使用してみましたが、コンパイラはそれを好きではありません (要素型に変換できません。

foreach(KeyValuePair<string,IList<Days>> kvp in days)
{
//do stuff
}

値がリストである辞書のキーと値のペアをどのように foreach しますか? 可能であれば、読みやすくするためにlinqの使用を避けようとしています。

4

3 に答える 3

4

型を正確に指定する代わりに、暗黙的に型指定されたローカル変数を使用できます。varキーワードを使用して行われます:

foreach (var kvp in dict)
{

}

LINQ を使用して、望ましいものを取得することもできますDictionary<Key, IList<string>>

Dictionary<Key, IList<string>> dict2 =
    dict.ToDictionary(x => x.Key,
                      x => (IList<String>)x.Value.Select(y => y.ToString()).ToList());

ToString()シンプルな呼び出しを、使用しDaysたいstring変換に置き換えます。

于 2013-09-30T19:57:19.683 に答える
2

Dictionary<Key, IList<Days>>foreach ループでこれらの型を照合する必要があることを意味する辞書が定義されています。

foreach (KeyValuePair<Key, IList<Days>> kvp in days)
{
    foreach (Days day in kvp.Value)
    {
        // Convert individual elements
    }
}

他のオプションは、ToDictionary拡張メソッドを使用して変換することです。

days.ToDictionary(d => d.Key, d => Value.Select(d => d.ToString()));
于 2013-09-30T19:56:51.483 に答える
1
foreach(KeyValuePair<string,IList<Days>> kvp in days)
{
    IList<Days> dayList = kvp.Value;
    // TODO: convert and insert in new dictionary
}
于 2013-09-30T19:59:07.377 に答える