2

キー付きコレクションを反復処理するメソッドを作成したいと考えています。メソッドが、KeyedCollection<string, Collection<string>>

メソッドは次のとおりです。

public void IterateCollection(KeyedCollection<string, Collection<string>> items)
{
    foreach (??? item in items)
    {
        Console.WriteLine("Key: " + item.Key);
        Console.WriteLine("Value: " + item.Value);
    }
}

ループ内の疑問符をどのタイプに置き換える必要があるかわからないため、明らかに機能しません。後でループ本体でandプロパティを呼び出す必要があるため、単純にobjectorを配置することはできません。私が探しているタイプは何ですか?ありがとう。varKeyValue

4

2 に答える 2

8

KeyedCollection<TKey, TItem>を実装ICollection<TItem>するため、この場合は次を使用します。

foreach(Collection<string> item in items)

それvarはあなたにも与えるものです。キーと値のペアを取得するのではなくKeyedCollection、値を取得するだけです。

KeyedCollection使用するのに最適なタイプではない可能性はありますか?

于 2011-11-11T14:14:29.980 に答える
2

項目タイプはCollection<String>、の列挙子の定義によりますKeyedCollection。適切な型を使用することを任意に決定して、両方を取得することはできKeyませValueん。反復がサポートされていない場合は、この場合はサポートされていません。var明示的な型を使用する とはまったく同じであることに注意してください。

両方Keyを繰り返し使用できるようにする場合は、タイプValueを使用する必要があります。Dictionary<string, Collection<string>>

于 2011-11-11T14:16:42.770 に答える