欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 集(HashSet)

admin
2025年3月23日 7:45 本文熱度 166

在 C# 中,集合是一種非常重要的數(shù)據(jù)結(jié)構(gòu),它用于存儲(chǔ)一組唯一的元素。HashSet<T> 是一種基于哈希表的集合數(shù)據(jù)結(jié)構(gòu),它提供了高效的元素查找、添加和刪除操作。HashSet<T> 是無(wú)序的,并且不允許重復(fù)的元素,這使得它在某些場(chǎng)景下非常有用。

創(chuàng)建 HashSet

要?jiǎng)?chuàng)建一個(gè) HashSet,您需要引入 System.Collections.Generic 命名空間:

using System.Collections.Generic;

// 創(chuàng)建一個(gè)空的 HashSet
HashSet<int> numbers = new HashSet<int>();

添加元素

使用 Add 方法向 HashSet 中添加元素:

namespace AppHashSet
{
    internal class Program
    {

        static void Main(string[] args)
        
{
            // 創(chuàng)建一個(gè)空的 HashSet
            HashSet<int> numbers = new HashSet<int>();
            numbers.Add(1);
            numbers.Add(2);
            numbers.Add(3);

            // 嘗試添加重復(fù)的元素,將不會(huì)被添加到集合中
            bool isAdded = numbers.Add(2); // 返回 false,因?yàn)?2 已經(jīng)存在

            // 輸出numbers中的元素
            foreach (int number in numbers)
            {
                Console.WriteLine(number);
            }
        }
    }
}

刪除元素

使用 Remove 方法從 HashSet 中刪除元素:

bool isRemoved = numbers.Remove(2); // 返回 true,如果元素存在并且被移除

檢查元素是否存在

使用 Contains 方法檢查 HashSet 中是否包含某個(gè)元素:

bool contains = numbers.Contains(2); // 返回 false,因?yàn)?2 已經(jīng)被移除

遍歷 HashSet

使用 foreach 循環(huán)遍歷 HashSet 中的元素:

foreach (int number in numbers)
{
    Console.WriteLine(number);
}

HashSet 的操作

HashSet<T> 提供了一些強(qiáng)大的集合操作,例如并集、交集、差集和對(duì)稱(chēng)差集。

并集(Union)

namespace AppHashSet
{
    internal class Program
    {

        static void Main(string[] args)
        
{
            HashSet<int> setA = new HashSet<int> { 123 };
            HashSet<int> setB = new HashSet<int> { 345 };

            setA.UnionWith(setB); // setA 現(xiàn)在包含 { 1, 2, 3, 4, 5 }

            // 輸出結(jié)果
            foreach (int num in setA)
            {
                Console.WriteLine(num);
            }
        }
    }
}

交集(Intersect)

setA.IntersectWith(setB); // setA 現(xiàn)在包含 { 3 }

差集(Except)

setA.ExceptWith(setB); // setA 現(xiàn)在包含 { 1, 2 },因?yàn)檫@些元素在 setB 中不存在

對(duì)稱(chēng)差集(SymmetricExcept)

setA.SymmetricExceptWith(setB); // setA 現(xiàn)在包含 { 1, 2, 4, 5 },因?yàn)檫@些元素只在一個(gè)集合中存在

性能注意事項(xiàng)

HashSet<T> 在處理大量數(shù)據(jù)時(shí)通常比 List<T> 更高效,因?yàn)樗褂霉1韥?lái)存儲(chǔ)元素,這意味著它的添加、刪除和查找操作的平均時(shí)間復(fù)雜度為 O(1)。然而,這種效率是以犧牲順序和重復(fù)元素為代價(jià)的。

示例:使用 HashSet 過(guò)濾重復(fù)元素

假設(shè)我們有一個(gè)整數(shù)數(shù)組,我們想要移除所有重復(fù)的元素。

namespace AppHashSet
{
    internal class Program
    {

        static void Main(string[] args)
        
{
            int[] numbersArray = { 123245561 };
            HashSet<int> uniqueNumbers = new HashSet<int>(numbersArray);

            foreach (int number in uniqueNumbers)
            {
                Console.WriteLine(number);
            }
        }
    }
}

在這個(gè)例子中,我們使用 HashSet 的構(gòu)造函數(shù)直接從數(shù)組中創(chuàng)建了一個(gè)集合,自動(dòng)移除了所有重復(fù)的元素。然后我們遍歷這個(gè)集合,打印出唯一的元素。

總結(jié)

HashSet<T> 是 C# 中一個(gè)非常有用的集合類(lèi),適用于需要存儲(chǔ)唯一元素集合的場(chǎng)景。它提供了豐富的集合操作方法,可以很方便地進(jìn)行并集、交集、差集和對(duì)稱(chēng)差集等操作。在處理大量數(shù)據(jù)時(shí),HashSet<T> 通常比其他集合類(lèi)型更高效。通過(guò)上面的例子和說(shuō)明,您應(yīng)該對(duì)如何在 C# 中使用 HashSet 有了一定的了解。


閱讀原文:原文鏈接


該文章在 2025/3/24 16:49:58 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved