有没有人有一个好的和有效的扩展方法来查找一系列项目是否有任何重复?
猜猜我可以return subjects.Distinct().Count() == subjects.Count()
使用扩展方法,但感觉应该有更好的方法。该方法必须对元素进行两次计数并整理出所有不同的元素。更好的实现应该在它找到的第一个副本上返回 true。有什么好的建议吗?
我想大纲可能是这样的:
public static bool HasDuplicates<T>(this IEnumerable<T> subjects)
{
return subjects.HasDuplicates(EqualityComparer<T>.Default);
}
public static bool HasDuplicates<T>(this IEnumerable<T> subjects, IEqualityComparer<T> comparer)
{
...
}
但不太确定它的智能实现会如何......