检查表中是否包含重复的空字符串项目

时间:2018-09-25 18:51:18

标签: c#

我的代码以检查列表是否包含重复项:

//nummers is List<string>
if (nummers.GroupBy(n => n).Any(c => c.Count() > 1))
{
}

但是,在我的列表上可能有空字符串项(很多),我不想考虑它们。我该怎么办?

3 个答案:

答案 0 :(得分:2)

过滤掉它们

//nummers is List<string>
if (nummers.Where(n=> !string.IsNullOrEmpty(n)).GroupBy(n => n).Any(c => c.Count() > 1))
{
}

答案 1 :(得分:2)

有两个快速选择

nummers.GroupBy(n => n).Where(c => !string.IsNullOrEmpty(c.Key)).Any(c => c.Count() > 1)

nummers.Where(s => !string.IsNullOrEmpty(c.Key)).GroupBy(n => n).Any(c => c.Count() > 1)

任何一个都可以解决。我让你检查哪个效果更好

或者如果您也想忽略只是空格的字符串,请使用string.IsNullOrWhiteSpace

答案 2 :(得分:1)

最直接的方法是在将它们分组之前将它们过滤掉,就像这样:

nummers.Where(n => !string.IsNullOrEmpty(n)).GroupBy(n => n).Any(c => c.Count() > 1)