假设我有
List<KeyValuePair<int, string>> d
我知道这个字符串,但我想找到它的整数值。如何在此列表中找到键值对?
你需要写这个:
var result = d.Where(kvp => kvp.Value == "something");
result
将包含所有值为"something"
的KeyValuePair
LINQ
中的 Single
或 SingleOrDefault
来获取唯一的项目:KeyValuePair<int, string> v = d.SingleOrDefault(x => x.Value == "mystring");
int key = v.Key;
var v = d.Where(x => x.Value == "mystring"); //the results would be IEnumerable
如果该项不是唯一的,但您要获取非唯一项中的第一个,请使用 First 或
FirstOrDefault
<code><code>var v = d.FirstOrDefault(x => x.Value == "mystring");
int key = v.Key;
</code></code>
其中一种可能的解决方案:
List<KeyValuePair<int, string>> list = new List<KeyValuePair<int, string>>()
{
new KeyValuePair<int, string>(1, "a"),
new KeyValuePair<int, string>(2, "b")
};
var pair = list.FirstOrDefault(x => x.Value == "b");
// or you can also use list.Find(x => x.Value == "b");
Console.WriteLine(pair.Value);
Console.WriteLine(pair.Key);
d.FirstOrDefault(x=>x.Value == "yoursearchvalue").Key;