C#集合之集(set)的用法

作者:Ruby_Lu

这篇文章介绍了C#集合之集(set)的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

包含不重复元素的集合称为“集(set)”。.NET Framework包含两个集HashSet<T>和SortedSet<T>,它们都实现ISet<T>接口。HashSet<T>集包含不重复元素的无序列表,SortedSet<T>集包含不重复元素的有序列表。
ISet<T>接口提供的方法可以创建合集,交集,或者给出一个是另一个集的超集或子集的信息。

    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验证traditionalTeams中的每个元素是否都包含在companyTeams中

    if (traditionalTeams.IsSubsetOf(companyTeams))
      Console.WriteLine("traditionalTeams is subset of companyTeams");

IsSupersetOf验证traditionalTeams中是否有companyTeams中没有的元素

    if (companyTeams.IsSupersetOf(traditionalTeams))
      Console.WriteLine("companyTeams is a superset of traditionalTeams");

Overlaps验证是否有交集

    traditionalTeams.Add("Williams");
    if (privateTeams.Overlaps(traditionalTeams))
      Console.WriteLine("At least one team is the same with the traditional " +
      "and private teams");

调用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

每个元素只列出一次,因为集只包含唯一值。
ExceptWith方法从ExceptWith中删除所有私有元素

    allTeams.ExceptWith(privateTeams);
    Console.WriteLine();
    Console.WriteLine("no private team left");
    foreach (var team in allTeams)
      Console.WriteLine(team);

到此这篇关于C#集合之集(set)的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • C# XML基础入门小结(XML文件内容增删改查清)
    C# XML基础入门小结(XML文件内容增删改查清)
    2022-04-04
  • C#实现语音播报功能
    C#实现语音播报功能
    2022-03-03
  • 浅谈C#中Action和Func回调的常用方式
    浅谈C#中Action和Func回调的常用方式
    2022-03-03
  • C#使用DirectX.DirectSound播放语音
    C#使用DirectX.DirectSound播放语音
    2022-03-03
  • C#集合之不变集合的用法
    C#集合之不变集合的用法
    2022-03-03
  • C#集合之可观察集合的用法
    C#集合之可观察集合的用法
    2022-03-03
  • C#集合之集(set)的用法
    C#集合之集(set)的用法
    2022-03-03
  • C#集合之字典的用法
    C#集合之字典的用法
    2022-03-03
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号