问题描述
|
我有一个keyvaluePairs列表,我想根据键值对其进行过滤,因此最终我将获得一个经过过滤的值列表(意味着-不会包含原始列表中的所有值)。
我猜也许最好的方法是某种形式的Lambda表达式,但我不确定如何实现。
谢谢,
阿隆
解决方法
尝试这个:
var values = list.Where(x => x.Key == \"whatever\").Select(x => x.Value);
这将仅为您提供值的过滤列表。
显然,您可以更改过滤键的方式。
, 使用以下内容:
var filteredList = list.Where(x => x.Key == \"Key\");
, 您正在寻找LINQ扩展方法的某种组合(具体取决于您要尝试执行的操作)。
例如,如果我有一个颜色列表的水果,并想要收集红色水果的集合,我可以执行以下操作:
var fruits = new List<KeyValuePair<string,string>>() {
new KeyValuePair<string,string>(\"Apple\",\"Green\"),new KeyValuePair<string,string>(\"Orange\",\"Orange\"),string>(\"Strawberry\",\"Red\"),string>(\"Cherry\",\"Red\")
};
var redFruits = fruits.Where(kvp => kvp.Value == \"Red\").Select(kvp => kvp.Key);
// this would result in a IEnumberable<string> { \"Strawberry\",\"Cherry\" }