从数组中删除重复的元素,忽略空格

时间:2019-04-20 15:08:34

标签: c# string

我尝试了几种方法来从字符串数组中删除重复的元素,但是没有一种方法可以满足我的要求。这是2个字符串:

CNTY / 013121/261538 / Y / Y / Y / Y / Y / Y / Y / C / NOSPACE //

CNTY / 013121/261538 / Y / Y / Y / Y / Y / Y / C / NO SPACE //

当它们从数组a复制到数组b时,我只希望保留其中一个。没关系。

我尝试了IEnumerable,HashSet和Distinct。它们每个都返回两个字符串。 (我的一个错误重复了第二个字符串。很抱歉。要清楚,我希望比较忽略空白。)

IEnumerable<string> b = a.AsQueryable().Distinct(StringComparer.InvariantCulture);

HashSet<string> set = new HashSet<string>(a);
string[] b = new string[set.Count];
set.CopyTo(b);

string[] b = a.Distinct().ToArray();

1 个答案:

答案 0 :(得分:1)

第一个元素与其他元素不相同,因此,区别将不会起作用,必须替换空格。

string[] a = { "CNTY/013121/261538/Y/Y/Y/Y/Y/Y/C/NOSPACE//", "CNTY/013121/261538/Y/Y/Y/Y/Y/Y/C/NO SPACE//", "CNTY/013121/261538/Y/Y/Y/Y/Y/Y/C/NO SPACE//" };
string[] b = a.Select(p => p.Replace(" ", "")).Distinct().ToArray(); //Replace 

输出:

"CNTY/013121/261538/Y/Y/Y/Y/Y/Y/C/NOSPACE//",