gpt4 book ai didi

c# - 在 C# 中检查具有空值的列表是否有重复项

转载 作者:IT王子 更新时间:2023-10-29 04:07:02 30 4
gpt4 key购买 nike

在 C# 中,我可以使用如下内容:

List<string> myList = new List<string>();

if (myList.Count != myList.Distinct().Count())
{
// there are duplicates
}

检查列表中的重复元素。但是,当列表中有 null 项时,这会产生误报。我可以使用一些缓慢的代码来做到这一点,但有没有一种方法可以检查列表中的重复项,同时以简洁的方式忽略空值?

最佳答案

如果您担心性能,以下代码将在找到第一个重复项后立即停止 - 到目前为止所有其他解决方案都要求对整个输入至少迭代一次。

var hashset = new HashSet<string>();
if (myList.Where(s => s != null).Any(s => !hashset.Add(s)))
{
// there are duplicates
}

hashset.Add 返回 false 如果该项目已经存在于集合中,而 Any 返回 true 作为一旦第一个 true 值出现,所以这将只搜索输入到第一个重复项。

关于c# - 在 C# 中检查具有空值的列表是否有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960484/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com