如何从Dictionary<string,classPrimData>筛选city为'XYZ'的记录
筛选Dictionary中符合条件的classPrimData实例
你可以直接通过操作字典的键值对集合或值集合来实现筛选,不需要修改原字典结构:
1. 仅获取符合条件的classPrimData实例
如果只需要满足city = 'XYZ'的实例列表,直接操作字典的Values属性:
var filteredPrimDataList = clsPrimDataCollection.Values .Where(data => data.city == "XYZ") .ToList();
2. 保留原键值对结构(生成新字典)
如果需要保留原字典的键(name|Age格式)和对应实例的映射关系,可以直接筛选字典的键值对,再转换为新字典:
var filteredDictionary = clsPrimDataCollection .Where(kvPair => kvPair.Value.city == "XYZ") .ToDictionary(kv => kv.Key, kv => kv.Value);
关键说明
Dictionary本身实现了IEnumerable<KeyValuePair<TKey, TValue>>,所以Where方法可以直接遍历每个键值对(KeyValuePair<string, classPrimData>),通过kvPair.Value就能访问到classPrimData实例的所有属性,筛选后再根据需求转换成列表或新字典即可,完全不需要改动原字典的结构。
内容的提问来源于stack exchange,提问作者Ashish Jaiswal
相关产品推荐
相关产品推荐

