我正在尝试获取两个列表的共同元素。示例如下:
var control = "F, H, S, W".Split(',').ToList();
var drives = new List<string> {"C", "D", "E", "F", "H" };
var common = drives.Intersect(control).ToList();
common.ForEach(x =>
{
MessageBox.Show(x);
});
通常
F
和 H
应返回此处,但只有 F
返回。我没有任何意义。
当您拆分字符串
"F, H, S, W"
时,您会得到数组[ "F", " H", " S", " W" ]
。因为每个逗号后面都有空格,所以它们也在分割数组中。因此,如果您将 "H"
与 " H"
进行比较,由于空格的原因,它是错误的。您可以通过在拆分列表的每个元素上调用 .Trim()
函数来删除所有前导和结尾空格来解决此问题。
var control = "F, H, S, W".Split(',').Select(x => x.Trim()).ToList();
var drives = new List<string> { "C", "D", "E", "F", "H" };
var common = drives.Intersect(control).ToList();
common.ForEach(x =>
{
MessageBox.Show(x);
});