C#集合之集(set)的用法
包含不重復(fù)元素的集合稱(chēng)為“集(set)”。.NET Framework包含兩個(gè)集HashSet<T>和SortedSet<T>,它們都實(shí)現(xiàn)ISet<T>接口。HashSet<T>集包含不重復(fù)元素的無(wú)序列表,SortedSet<T>集包含不重復(fù)元素的有序列表。
ISet<T>接口提供的方法可以創(chuàng)建合集,交集,或者給出一個(gè)是另一個(gè)集的超集或子集的信息。
var companyTeams = new HashSet<string>() { "Ferrari", "McLaren", "Mercedes" };
var traditionalTeams = new HashSet<string>() { "Ferrari", "McLaren" };
var privateTeams = new HashSet<string>() { "Red Bull", "Lotus", "Toro Rosso", "Force India", "Sauber" };
if (privateTeams.Add("Williams"))
Console.WriteLine("Williams added");
if (!companyTeams.Add("McLaren"))
Console.WriteLine("McLaren was already in this set");IsSubsetOf驗(yàn)證traditionalTeams中的每個(gè)元素是否都包含在companyTeams中
if (traditionalTeams.IsSubsetOf(companyTeams))
{
Console.WriteLine("traditionalTeams is subset of companyTeams");
}IsSupersetOf驗(yàn)證traditionalTeams中是否有companyTeams中沒(méi)有的元素
if (companyTeams.IsSupersetOf(traditionalTeams))
{
Console.WriteLine("companyTeams is a superset of traditionalTeams");
}Overlaps驗(yàn)證是否有交集
traditionalTeams.Add("Williams");
if (privateTeams.Overlaps(traditionalTeams))
{
Console.WriteLine("At least one team is the same with the traditional " +
"and private teams");
}調(diào)用UnionWith方法把新的 SortedSet<string>變量填充為companyTeams,privateTeams,traditionalTeams的合集
var allTeams = new SortedSet<string>(companyTeams);
allTeams.UnionWith(privateTeams);
allTeams.UnionWith(traditionalTeams);
Console.WriteLine();
Console.WriteLine("all teams");
foreach (var team in allTeams)
{
Console.WriteLine(team);
}輸出(有序的):
Ferrari Force India Lotus McLaren Mercedes Red Bull Sauber Toro Rosso Williams
每個(gè)元素只列出一次,因?yàn)榧话ㄒ恢怠?br />ExceptWith方法從ExceptWith中刪除所有私有元素
allTeams.ExceptWith(privateTeams);
Console.WriteLine();
Console.WriteLine("no private team left");
foreach (var team in allTeams)
{
Console.WriteLine(team);
}到此這篇關(guān)于C#集合之集(set)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C# HttpClient Post參數(shù)同時(shí)上傳文件的實(shí)現(xiàn)
這篇文章主要介紹了C# HttpClient Post參數(shù)同時(shí)上傳文件的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
C#中定時(shí)任務(wù)被阻塞問(wèn)題的解決方法
這篇文章主要給大家介紹了關(guān)于C#中定時(shí)任務(wù)被阻塞問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-11-11
C#使用Excel動(dòng)態(tài)函數(shù)實(shí)現(xiàn)生成依賴(lài)列表
這篇文章主要為大家詳細(xì)介紹了如何在C#中使用?Excel?動(dòng)態(tài)函數(shù)生成依賴(lài)列表,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)
這篇文章主要介紹了基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12

