2
List<KeyValuePair<String, String> myList = new List<KeyValuePair<String, String>>();

myList.Add(new KeyValuePair<String, SelectList>("theKey", "FIND THIS!"));

知っていることだけ"FIND THIS!"からどうやって取り戻すことができますか?この試みは機能していません。myListtheKey

String find = myList.Where(m => m.Key == "theKey");

他の言語から来た私は、大きな連想配列を検索して、次のような値を取得する可能性が常にありました。array[key] = value;

C#でこれを行うにはどうすればよいですか?

4

4 に答える 4

1

他の回答で述べたように、これには Dictionary を使用する必要があります。

ただし、回線String find = myList.Where(m => m.Key == "theKey");が機能​​しない理由はmyList.Where(m => m.Key == "theKey");KeyValuePair. 値だけが必要な場合は、次を試すことができます。

String find = myList.Where(m => m.Key == "theKey").Single().Value;

または、null をチェックする必要がある場合は、次のようにします。

var findKeyValue = myList.Where(m => m.Key == "theKey").SingleOrDefault();
if(findKeyValue != null)
{
    var find = findKeyValue.Value;
}

次のスニペットを使用することもできます (この場合、値または null のいずれかになります)

var find = myList.Where(m => m.Key == "theKey").Select(kvp => kvp.Value).SingleOrDefault();
于 2013-07-29T12:31:09.377 に答える