C#如何拼接数组并去除重复元素?
解决代码拼接去重的问题
原代码通过Concat拼接两个分割后的数组,但未处理重复项,导致"DL"重复出现。只需在拼接后调用Distinct()方法,即可自动过滤重复元素:
string carCodes = "DL, UL, AL, "; string airCodes = "RL, DL"; string[] allCodes = airCodes .Replace(" ", "") .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Concat(carCodes .Replace(" ", "") .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) .Distinct() // 新增该行实现去重 .ToArray();
补充说明:
Distinct()默认使用字符串的默认相等比较器,若遇到大小写不一致的重复项(如"dl"和"DL"),可传入指定比较器忽略大小写:.Distinct(StringComparer.OrdinalIgnoreCase)Distinct()会保留元素第一次出现的顺序,比如示例中"DL"会保留来自airCodes的实例,后续重复项会被过滤。
内容的提问来源于stack exchange,提问作者Dustin
相关产品推荐
相关产品推荐

