如何从List中精确匹配指定国家字符串?避免模糊筛选误判
解决C#集合中国家名称精确匹配筛选的问题
你的问题出在使用了Contains方法——它是判断筛选值是否为目标字符串的子串,所以选INDIA时,INDIANA因为包含INDIA这个子串也会被筛选出来。加上JSON里的国家字段末尾还有多余空格,直接用相等判断也会有问题,得先处理空白再做精确匹配。
直接改筛选逻辑就行:
var flights = new List<allflights>(); // 先去除字段和筛选值的前后空白,再做精确匹配 flights = flights.Where(x => x.Country.Trim().Equals(selectedvalue.Trim(), StringComparison.OrdinalIgnoreCase)).ToList();
关键说明:
Trim():去掉字符串前后的空白字符,解决JSON里国家名称末尾带空格的问题Equals+StringComparison.OrdinalIgnoreCase:做精确匹配,同时忽略大小写差异(如果不需要忽略大小写,去掉第二个参数即可)
这样就能只筛选出真正的INDIA条目,排除INDIANA这类包含子串的无关数据了。
内容的提问来源于stack exchange,提问作者alex dave
相关产品推荐
相关产品推荐

