如何从KeyValuePair列表中选择

本文关键字:选择 列表 KeyValuePair | 更新日期: 2023-09-27 18:17:57

我有一个KeyValuePair列表(键是字符串类型,值是int类型)。我想返回键值对列表它将得到我的匹配条件示例:返回一个Key = " a "且Value = 10的列表

如何选择将在此工作,以及如何编写表达式来获得我所需的结果?

如何从KeyValuePair列表中选择

不使用KeyValuePair列表,可以使用

Dictionary <string, int> dictionary = new Dictionary <string, int> ().
要搜索集合,可以使用First操作符,如果使用FirstOrDefault操作符就更好了。为什么?下面的描述。通过操作符进行搜索要快得多,因为集合是一个元素一个元素地搜索到满足条件的第一个遇到的项。操作符Where搜索整个集合。

现在我们正在向字典中添加一个新条目,key必须是唯一的(它们不能是具有相同key的两个条目)。

例如,让我们向集合中添加一些条目。

dictionary.Add ("one", 1);
dictionary.Add ("two", 2);
dictionary.Add ("three", 3);

现在,使用LINQ可以以一种非常简单和快速的方式获得我们感兴趣的项目。然后我们可以寻找关键元素因为我们知道它是唯一的。有两种方法:

第一种方法保证在没有元素搜索的情况下不会返回异常(例如;键="4")。结果将是一个空键和一个值0。

KeyValuePair <string, int> results = dictionary.FirstOrDefault (v => v.Key.Equals ("two"));

第二种方法可能在元素搜索不在集合中时产生错误。

KeyValuePair <string, int> results = dictionary.First (v => v.Key.Equals ("two"));

现在可以检索值了:

string key = results.Key;
int value = results.Value;

可以这样使用LINQ表达式:

IList<KeyValuePair<string, int>> values = new List<KeyValuePair<string, int>>();

添加键值

IList<KeyValuePair<string, int>> result = values.Where(v => v.Key == "A" && v.Value == 10).ToList();
var list = kvList.Where(kv => kv.Key == "A" && kv.Value == 10).ToList();