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只保留了一个副本。

相关推荐
何解忧19 小时前
.NET 中的新增功能系列文章—— .NET MAUI 中的新增功能
.net
geovindu9 小时前
go:loghelper
开发语言·后端·golang
魔术师Dix9 小时前
StartGame:Unity TDD 外部工程指南
学习·游戏·unity·c#·测试驱动开发
听雨入夜9 小时前
zero.zhang
开发语言·python
江屿风9 小时前
【C++笔记】【二叉搜索树】流食般投喂
开发语言·数据结构·c++·笔记
1001101_QIA9 小时前
VRChat 插件开发方式
开发语言·vr
会编程的土豆11 小时前
GoWeb 处理请求详解:请求行、请求头、请求参数与给客户端响应
开发语言·http·golang
name好难取诶19 小时前
PHP 静态分析工具实战 PHPStan 和 Psalm 完全指南
android·开发语言·php
湿滑路面20 小时前
Rouyan:使用WPF/C#构建的基于LLM的快捷翻译小工具
开发语言·c#·wpf
Lee_jerome21 小时前
《C/C++编译全家桶:g++四阶段、.a与.so区别、CMake构建、ARM交叉编译,这篇全讲透了》
c语言·开发语言·arm开发·c++·编译·cmake·cmakelists