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

C#使用Intersect求列表交集时部分元素未显示问题求助

列表交集仅返回部分元素的问题分析与解决

问题出在字符串分割后的元素格式上:原代码中"F, H, S, W".Split(',')会生成带前导空格的元素,比如" H"、" S",而drives列表中的元素是无空格的"H",Intersect方法对字符串做严格的相等匹配(区分内容、空格),因此只有完全匹配的"F"被识别为公共元素。

解决办法

有两种常用的修复方式:

方式1:分割时使用带空格的分隔符

直接按", "(逗号加空格)分割,避免生成带空格的元素:

var control = "F, H, S, W".Split(new[] {", "}, StringSplitOptions.RemoveEmptyEntries).ToList();
var drives = new List<string> {"C", "D", "E", "F", "H" };
var common = drives.Intersect(control).ToList();
common.ForEach(x => MessageBox.Show(x));

方式2:分割后去除每个元素的空白字符

如果不确定分隔符是否统一(比如可能存在逗号后多空格的情况),可以对分割后的每个元素做Trim处理:

var control = "F, H, S, W".Split(',')
                          .Select(s => s.Trim())
                          .ToList();
var drives = new List<string> {"C", "D", "E", "F", "H" };
var common = drives.Intersect(control).ToList();
common.ForEach(x => MessageBox.Show(x));

两种方式都能让control中的元素和drives中的元素完全匹配,最终得到F和H两个公共元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:43:10