📜  C#中的SortedSet与示例

📅  最后修改于: 2021-05-29 15:29:09             🧑  作者: Mango

在C#中,SortedSet是按排序顺序的对象的集合。它属于通用类型集合,并在System.Collections.Generic命名空间下定义。它还提供许多数学设置操作,例如交集,并集和差。这是一个动态集合,这意味着在添加新元素时,SortedSet的大小会自动增加。

重要事项:

  • SortedSet类实现ICollectionIEnumerableIReadOnlyCollectionISetICollectionIEnumerableIDeserializationCallbackISerializable接口。
  • SortedSet的容量是它可以容纳的元素数量。
  • 在SortedSet中,元素必须是唯一的。
  • 在SortedSet中,元素的顺序升序。
  • 如果您必须存储唯一元素并保持升序,则通常在我们要使用SortedSet类时使用。
  • 在SortedSet中,用户只能存储相同类型的元素。

如何创建SortedSet?

SortedSet类提供了用于创建SortedSet的5种不同类型的构造函数,这里我们仅使用SortedSet()构造函数。要了解有关SortedSet的构造函数的更多信息,可以参考C#| The。 SortedSet类

SortedSet():用于创建SortedSet类的实例。

步骤1:借助using关键字,在程序中包含System.Collections.Generic命名空间:

步骤2:使用SortedSet类创建SortedSet,如下所示:

步骤3:如果要在SortedSet中添加元素,请使用Add()方法在SortedSet中添加元素。您还可以使用集合初始值设定项将元素存储在SortedSet中。

步骤4:使用foreach循环访问SortedSet的元素。如下例所示。

例子:

// C# program to illustrate how to
// create SortedSet
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver Class
    static public void Main()
    {
  
        // Creating SortedSet
        // Using SortedSet class
        SortedSet my_Set1 = new SortedSet();
  
        // Add the elements in SortedSet
        // Using Add method
        my_Set1.Add(101);
        my_Set1.Add(1001);
        my_Set1.Add(10001);
        my_Set1.Add(100001);
        Console.WriteLine("Elements of my_Set1:");
  
        // Accessing elements of SortedSet
        // Using foreach loop
        foreach(var val in my_Set1)
        {
            Console.WriteLine(val);
        }
  
        // Creating another SortedSet
        // using collection initializer
        // to initialize SortedSet
        SortedSet my_Set2 = new SortedSet() {
                                202,2002,20002,200002};
                  
        // Display elements of my_Set2
        Console.WriteLine("Elements of my_Set2:");
        foreach(var valu in my_Set2)
        {
            Console.WriteLine(valu);
        }
    }
}
输出:
Elements of my_Set1:
101
1001
10001
100001
Elements of my_Set2:
202
2002
20002
200002

如何从SortedSet中删除元素?

在SortedSet中,允许您从SortedSet中删除元素。 SortedSet 类提供了三种不同的方法来删除元素,这些方法是:

  • Remove(T):此方法用于从SortedSet中删除指定的项目。
  • RemoveWhere(Predicate):此方法用于从SortedSet中删除所有与指定谓词定义的条件匹配的元素。
  • Clear():此方法用于从集合中删除所有元素。

例子:

// C# program to illustrate how to
// remove elements from SortedSet
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Main Method
    static public void Main()
    {
  
        // Creating SortedSet
        // Using SortedSet class
        SortedSet my_Set = new SortedSet();
  
        // Add the elements in SortedSet
        // Using Add method
        my_Set.Add(101);
        my_Set.Add(1001);
        my_Set.Add(10001);
        my_Set.Add(100001);
  
        // After using Remove method
        Console.WriteLine("Total number of elements "+
               "present in my_Set:{0}", my_Set.Count);
  
        // Remove element from SortedSet
        // Using Remove method
        my_Set.Remove(1001);
  
        // Before using Remove method
        Console.WriteLine("Total number of elements "+
               "present in my_Set:{0}", my_Set.Count);
  
        // Remove all elements from SortedSet
        // Using Clear method
        my_Set.Clear();
        Console.WriteLine("Total number of elements "+
               "present in my_Set:{0}", my_Set.Count);
    }
}
输出:
Total number of elements present in my_Set:4
Total number of elements present in my_Set:3
Total number of elements present in my_Set:0

如何检查SortedSet中元素的可用性?

在SortedSet中,可以使用Contains方法检查给定元素是否存在。此方法用于确定集合是否包含特定元素。

例子:

// C# program to illustrate how to check
// availability of elements in SortedSet
using System;
using System.Collections.Generic;
  
public class GFG {
    static public void Main()
    {
  
        // Creating SortedSet
        // Using SortedSet class
        SortedSet my_Set = new SortedSet();
  
        // Add the elements in SortedSet
        // Using Add method
        my_Set.Add(101);
        my_Set.Add(1001);
        my_Set.Add(10001);
        my_Set.Add(100001);
  
        // Check the given element present
        // in the SortedSet or not
        // Using Contains method
        if (my_Set.Contains(101) == true) 
        {
            Console.WriteLine("Element is available..!");
        }
  
        else
        {
            Console.WriteLine("Element is not available..!");
        }
    }
}
输出:
Element is available..!