You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定列表筛选Dictionary元素?解决==运算符类型不匹配错误

解决“运算符‘==’无法应用于‘string’和‘List’”的错误

你遇到的这个错误逻辑很清晰——你在尝试把单个字符串(k.ConversionTypeName)直接和一个字符串列表(conversionTypeNames)用==做相等判断,这在C#里是不允许的,因为两者的类型完全不匹配。

要实现从字典里筛选出ConversionTypeName存在于conversionTypeNames列表中的元素,你需要用集合包含判断来替代直接相等比较。下面是修正后的可运行代码:

List<string> conversionTypeNames = Conversion1List.Select(k => k.ConversionTypeName).Distinct().ToList();
var query = new GoogleAdWordsData_Dictionaries_Query();
var ConversionsDict = query.GetConversionDictionary(ClientID);
// 使用Contains方法判断当前元素的ConversionTypeName是否在目标列表中
ConversionsDict = ConversionsDict.Where(k => conversionTypeNames.Contains(k.ConversionTypeName)).ToList();

额外性能优化建议

如果你的conversionTypeNames列表元素较多,建议把它转换成HashSet<string>,这样Contains方法的查找效率会从O(n)提升到O(1),处理大量数据时性能优势很明显:

// HashSet自动去重,无需额外调用Distinct()
HashSet<string> conversionTypeNames = new HashSet<string>(Conversion1List.Select(k => k.ConversionTypeName));
var query = new GoogleAdWordsData_Dictionaries_Query();
var ConversionsDict = query.GetConversionDictionary(ClientID);
ConversionsDict = ConversionsDict.Where(k => conversionTypeNames.Contains(k.ConversionTypeName)).ToList();

内容的提问来源于stack exchange,提问作者JonnyJon44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:24:25