我的代码以检查列表是否包含重复项:
//nummers is List<string>
if (nummers.GroupBy(n => n).Any(c => c.Count() > 1))
{
}
但是,在我的列表上可能有空字符串项(很多),我不想考虑它们。我该怎么办?
答案 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)