假设我有
List<KeyValuePair<int, string>> d
我知道字符串,但我想找到它的整数。 如何在此列表中找到keyvaluepair?
答案 0 :(得分:9)
你写的是:
var result = d.Where(kvp => kvp.Value == "something");
result
将包含值为KeyValuePair
的所有"something"
答案 1 :(得分:2)
如果该项目是唯一的,您可以使用LINQ
Single
或SingleOrDefault
:
KeyValuePair<int, string> v = d.SingleOrDefault(x => x.Value == "mystring");
int key = v.Key;
如果该项目不是唯一的,那么您可以使用LINQ
Where
:
var v = d.Where(x => x.Value == "mystring"); //the results would be IEnumerable
如果该项目不是唯一的,但您希望获得非唯一项目中的第一项,请使用First
或FirstOrDefault
var v = d.FirstOrDefault(x => x.Value == "mystring");
int key = v.Key;
答案 2 :(得分:1)
许多可能的解决方案之一:
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);
答案 3 :(得分:0)
使用此:
d.FirstOrDefault(x=>x.Value == "yoursearchvalue").Key;