gpt4 book ai didi

c# - Dictionary ContainsValue 并通过一步或有效的方式获取 key 来完成此任务?

转载 作者:行者123 更新时间:2023-11-30 22:06:34 24 4
gpt4 key购买 nike

是否有有效的方法来检查字典中的值,一旦知道该值存在,然后找到该值的键?

//检查字典已经有sortedWord(即key是word,value是sortedWord)

 if (anagramDict.ContainsValue(sortedWord))
{
//Get the key for matching the sortedWord
string keyWord = anagramDict.Single(kvp => kvp.Value == sortedWord).Key;

本题基本逆向请求。 Dictionary ContainsKey and get value in one function

最佳答案

您要求与值对应的“the”键,但可能有多个这样的键。因此,您可能应该使用 .First() 而不是 .Single()

而且字典的排序顺序是未定义的,因此寻找“第一个”键是不明确的。

您可以执行如下操作(也适用于值类型的键):

var keys = dict.Where(kvp => kvp.Value == sortedWord).Select(kvp => kvp.Key).ToList();
if (keys.Count > 0)
{
// Now you need to decide which matching key you want.
// If you don't care, you can take the first
key = keys[0];
}

如果你不关心你得到的是哪个键,在第一次匹配时停止会更有效率:

var keys = dict.Where(kvp => kvp.Value == sortedWord).Select(kvp => kvp.Key).Take(1).ToList();
if (keys.Count > 0)
{
key = keys[0];
}

对于键是引用类型的字典(这是你的情况:我假设你的键是一个字符串),假设你不关心你得到的是哪个键,你可以将其简化为:

var key = dict.Where(kvp => kvp.Value == sortedWord).Select(kvp => kvp.Key).FirstOrDefault();
if (key != null)
{
...
}

关于c# - Dictionary ContainsValue 并通过一步或有效的方式获取 key 来完成此任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com