21

次のコードはリストをループして値を取得しますが、キーと値の両方を取得する同様のステートメントをどのように記述しますか?

foreach (string value in list.Values)
{
    Console.WriteLine(value);
}

例:このようなもの

    foreach (string value in list.Values)
{
    Console.WriteLine(value);
        Console.WriteLine(list.key);
}

リストのコードは次のとおりです。

SortedList<string, string> list = new SortedList<string, string>();
4

4 に答える 4

35
foreach (KeyValuePair<string, string> kvp in list)
{
    Console.WriteLine(kvp.Value);
    Console.WriteLine(kvp.Key);
}

msdnから:

GetEnumeratorは、KeyValuePair<TKey, TValue>を反復処理するタイプの列挙子を返しますSortedList<TKey, TValue>

Jonが述べたように、var反復変数の型名を記述する代わりにキーワードを使用できます(型は使用法から推測されます)。

foreach (var kvp in list)
{
    Console.WriteLine(kvp.Value);
    Console.WriteLine(kvp.Key);
}
于 2012-12-23T17:56:15.573 に答える
0

お詫び...

これは間違ったトピックでした(値をループします)。私の問題は、値だけでなく、キーと値のペアをループすることでした。SortedListコレクションから値を取得するための可能なオプションとして異議がない場合は、これをここに残します。

私もこのエラーを理解しようとしましたが、私の解決策は、タイプを使用してエラーDictionaryEntryアウトタイプを置き換えることでしたKeyValuePair。MSリファレンス https://msdn.microsoft.com/en-us/library/system.collections.dictionaryentry(v=vs.100).aspxから見つかりました

私の場合、SortedListタイプコレクションを作成するコードがあり、varまたはKeyValuePairタイプが機能しませんでした(varコレクションアイテムからキー/値を読み取ろうとしたときにKeyValuePairエラーが発生し、初期ループ定義でエラーが発生しました。両方ともエラーが発生しました"Specified cast is not valid"

だからここに私のために働いたコードのサンプルがあります:

SortedList _dims = GetList("mysortedlist");
foreach (DictionaryEntry kvp in _dims)
{
    Console.WriteLine(kvp.Key.ToString());
    Console.WriteLine(kvp.Value.ToString()); 
}

HTH

デイブ

于 2016-01-13T19:35:31.693 に答える
-1

キーを使用して繰り返し、各キーの値を取得します。

SortedList<string, string> info = new SortedList<string, string>();

info.Add("path", "път");
info.Add("folder", "директория");
info.Add("directory", "директория");
info.Add("file", "Файл");

foreach (string key in info.Keys)
{
 Console.WriteLine("\t{0}\t{1}", key, info[key]);
}
于 2015-01-06T21:37:32.820 に答える
-2
 bool value = list[key];

これはあなたを助けることができます。

于 2013-12-16T09:29:17.360 に答える