根据值成员变量搜索IDictionary

时间:2015-02-05 12:58:31

标签: c# linq dictionary steam-web-api

我已经使用KeyPair <int, SteamApp>获得了一个IDictionary,其中SteamApp是我正在使用的SteamAPI框架中的自定义类。 SteamApp类有一个字段Name,我想在其中搜索字典。我想搜索特定的游戏名称。我该怎么做?

简短代码段:

foreach (var pair in allGames) {
            Debug.WriteLine(pair.Value.Name);
}

1 个答案:

答案 0 :(得分:3)

所以你想要字典里的所有KeyValuePair<int, SteamApp>,其中SteamApp-name与你正在搜索的相同?

var allKeyValues = dict.Where(kv => kv.Value.Name == searchedName);
foreach(KeyValuePair<int, SteamApp> kv in allKeyValues)
{
    // a game with that name exists in the dictionary
}

如果您只想第一次使用FirstOrDefault

var keyVal = dict.FirstOrDefault(kv => kv.Value.Name == searchedName);
if(keyVal.Value != null)
{
    // a game with that name exists in the dictionary
}