C#面:Set 里的元素是不能重复的,用什么方法来区分是否重复

在 C# 中,Set 是一种集合类型,它是由一组唯一的元素组成的,不允许重复。当向Set中添加重复的元素时,Set 会自动忽略重复的元素,只保留一个副本。

这是因为Set内部使用了哈希表来存储元素,它会首先计算元素的哈希码,然后与已有元素的哈希码进行比较。如果哈希码相同,HashSet 会调用元素类型的 Equals() 方法来进一步比较元素是否相等。如果哈希码不同,则 HashSet 会认为元素不重复。

向 Set 添加重复元素示例:

cs 复制代码
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 创建一个Set
        HashSet<int> mySet = new HashSet<int>();

        // 向Set中添加元素
        mySet.Add(1);
        mySet.Add(2);
        mySet.Add(3);
        mySet.Add(2); // 添加重复元素

        // 遍历Set中的元素
        foreach (int num in mySet)
        {
            Console.WriteLine(num);
        }
    }
}

运行上述代码,输出结果为:

cs 复制代码
1
2
3

可以看到,重复的元素2只保留了一个副本。

相关推荐
Tatalaluola12 分钟前
【《游戏编程模式》实战04】状态模式实现敌人AI
学习·游戏·unity·c#·状态模式
hikktn2 小时前
Java 兼容读取WPS和Office图片,结合EasyExcel读取单元格信息
java·开发语言·wps
来瓶霸王防脱发2 小时前
【C#深度学习之路】如何使用C#实现Yolo5/8/11全尺寸模型的训练和推理
深度学习·yolo·机器学习·c#
Agile.Zhou2 小时前
.NET 依赖注入中的 Captive Dependency
.net
小青柑-2 小时前
Go语言中的接收器(Receiver)详解
开发语言·后端·golang
豪宇刘3 小时前
JavaScript 延迟加载的方法
开发语言·javascript
摇光933 小时前
js迭代器模式
开发语言·javascript·迭代器模式
美丽的欣情4 小时前
Qt实现海康OSD拖动Demo
开发语言·qt
C++小厨神4 小时前
Bash语言的计算机基础
开发语言·后端·golang
BinaryBardC4 小时前
Bash语言的软件工程
开发语言·后端·golang