在列表中查找一个KeyValuePair

15

假设我有

 List<KeyValuePair<int, string>> d

我知道这个字符串,但我想找到它的整数值。如何在此列表中找到键值对?


是的,但我只需要keyvaluepair对象。从那时起,我可以获取整数(键成员)。我在问题中问:“我知道字符串,但我想找到它的整数”。 - int3
4个回答

19

你需要写这个:

var result = d.Where(kvp => kvp.Value == "something");

result将包含所有值为"something"KeyValuePair


5
您可以使用 LINQ 中的 SingleSingleOrDefault 来获取唯一的项目:
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

<code><code>var v = d.FirstOrDefault(x => x.Value == "mystring");
int key = v.Key;
</code></code>

3

其中一种可能的解决方案:

   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);

1
使用这个:
d.FirstOrDefault(x=>x.Value == "yoursearchvalue").Key;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接