如何从KeyValuePair列表中选择?

时间:2015-10-15 04:52:19

标签: c# generic-list

我有一个KeyValuePair列表(Key是字符串类型,值是int类型)。我想返回键值对列表,它将获得我的匹配条件                      示例:返回一个列表,其中Key =“A”,Value = 10.

select如何处理这个以及如何编写表达式以获得我所需的结果?

3 个答案:

答案 0 :(得分:3)

您可以使用

,而不是使用KeyValuePair列表
Dictionary <string, int> dictionary = new Dictionary <string, int> ().

要搜索我们的收藏品,我们将使用第一个运算符,如果我们使用运算符 FirstOrDefault ,情况会更好。为什么?以下描述。通过运算符搜索要快得多,因为逐个元素地搜索集合到满足条件的第一个遇到的项。同时,运营商 Where 搜索整个集合。

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

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

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

现在,使用LINQ可以非常简单快捷地获取我们感兴趣的项目。然后我们可以查找关键元素,因为我们知道这是唯一的。 有两种方法:

第一种方式保证在没有元素搜索的情况下我们不会返回异常(例如,Key =&#34; four&#34;)。结果将是一个空键,值为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;

答案 1 :(得分:1)

var list = kvList.Where(kv => kv.Key == "A" && kv.Value == 10).ToList();

答案 2 :(得分:1)

你可以像这样使用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();