热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#中的SortedDictionary实现

c#中的SortedDictionary实现原文:http

c# 中的 SortedDictionary 实现

原文:https://www . geeksforgeeks . org/sorted dictionary-implementation-in-c-sharp/

在 C# 中,SortedDictionary 是一个通用集合,用于以排序的形式存储键/值对,并且对键进行排序。排序字典在系统下定义。集合.泛型命名空间。它本质上是动态的,意味着排序后的字典的大小会根据需要而增长。

要点:


  • sorted dictionary 类实现了

    • 收藏>界面

    • 互动界面

    • IEnumerable >界面

    • IEnumerable 界面

    • ireadoptolcollection界面

    • IReadOnlyDictionary 界面

    • 收藏接口

    • 接口

    • IEnumerable 接口



  • 在 SortedDictionary 中,键必须是唯一的。不允许重复的键。

  • 在 SortedDictionary 中,键是不可变的,不能为空。

  • 在 SortedDictionary 中,当值的类型为引用类型时,该值可以为空。

  • 它为未排序的数据提供了最快的插入和移除操作。

  • 在 SortedDictionary 中,只能存储相同类型的键/值对。

  • SortedDictionary 的容量是 SortedDictionary 可以容纳的键/值对的数量。

  • 它按升序排序。


如何创建 SortedDictionary?

一个 SortedDictionary 类有 4 个构造函数,用于创建一个 SortedDictionary,构造函数如下:


  • SortedDictionary (): 此构造函数用于创建 SortedDictionary 类的一个实例,该实例为空,并对键类型使用默认的 IComparer 实现。

  • SortedDictionary (IComparer): 此构造函数用于创建 SortedDictionary 类的实例,该实例为空,并使用指定的 IComparer 实现来比较键。

  • SortedDictionary (IDictionary): 此构造函数用于创建 SortedDictionary 类的实例,该类包含从指定的 IDictionary 复制的元素,并对键类型使用默认的 IComparer 实现。

  • SortedDictionary (IDictionary,IComparer): 此构造函数用于创建 SortedDictionary 类的实例,该类包含从指定的 IDictionary 复制的元素,并使用指定的 IComparer 实现来比较键。

让我们看看如何使用 SortedDictionary () 构造函数创建 SortedDictionary:

第一步:包含系统。集合。泛型命名空间在你的程序中借助使用关键字。

using System.Collection.Generics;

步骤 2: 使用 SortedDictionary <创建一个 sorted dictionary TKey,TValue >类,如下所示:

sorted dictionarysorted dictionary _ name = new sorted dictionary();

第三步:如果你想在你的排序字典中添加元素,那么使用 Add()方法 在你的排序字典中添加一个键/值对。您还可以使用集合初始值设定项在 SortedDictionary 中添加键/值对。

步骤 4: 通过使用 foreach 循环,或通过使用索引值,或通过使用 for 循环来访问 SortedDictionary 的键/值对。

示例:

// C# program to illustrate how 
// to create sorted dictionary
using System;
using System.Collections.Generic;
class GFG {
    // Main Method
    static public void Main()
    {
        // Creating sorted dictionary
        // Using SortedDictionary class
        SortedDictionary<int, string> My_sdict = 
            new SortedDictionary<int, string>();
        // Adding key/value pair in Sorted 
        // Dictionary Using Add() method
        My_sdict.Add(004, "Ask.com");
        My_sdict.Add(003, "Yahoo");
        My_sdict.Add(001, "Google");
        My_sdict.Add(005, "AOL.com");
        My_sdict.Add(002, "Bing");
        Console.WriteLine("Top Search Engines:");
        // Accessing the key/value pair of the 
        // SortedDictionary Using foreach loop
        foreach(KeyValuePair<int, string> pair in My_sdict)
        {
            Console.WriteLine("Rank: {0} and Name: {1}",
                                  pair.Key, pair.Value);
        }
        // Creating another sorted dictionary
        // using SortedDictionary<TKey, TValue> class
        // adding key/value pairs
        // Using collection initializer
        SortedDictionary<int, string> My_sdict1 = 
              new SortedDictionary<int, string>() {
                                     {1, "Python"},
                                      {5, "Swift"},
                                 {2, "Javascript"},
                                        {4, "Go" },
                                      {3, "Rust"}};
        Console.WriteLine("Top Programming Language in 2019: ");
        // Accessing the key/value pair of the 
        // SortedDictionary Using foreach loop
        foreach(KeyValuePair<int, string> pair in My_sdict1)
        {
            Console.WriteLine("Rank:{0} and Name: {1}",
                                 pair.Key, pair.Value);
        }
    }
}

Output:

Top Search Engines:
Rank: 1 and Name: Google
Rank: 2 and Name: Bing
Rank: 3 and Name: Yahoo
Rank: 4 and Name: Ask.com
Rank: 5 and Name: AOL.com
Top Programming Language in 2019:
Rank:1 and Name: Python
Rank:2 and Name: Javascript
Rank:3 and Name: Rust
Rank:4 and Name: Go
Rank:5 and Name: Swift


如何从 SortedDictionary 中移除元素?

在 SortedDictionary 中,允许从 SortedDictionary 中移除元素。SortedDictionary 类提供了两种不同的方法来移除元素,这两种方法是:


  • Clear() : 此方法用于移除 SortedDictionary 中的所有元素。

  • 【移除(TKey) : 此方法用于从 SortedDictionary 中移除具有指定键的元素。

示例:

// C# program to illustrate how to
// Remove key/value pair from the 
// SortedDictionary
using System;
using System.Collections.Generic;
class GFG {
    // Main Method
    static public void Main()
    {
        // Creating sorted dictionary
        // Using SortedDictionary class
        SortedDictionary string> My_sdict = 
             new SortedDictionary string>();
        // Adding key/value pair in 
        // SortedDictionary Using 
        // the Add() method
        My_sdict.Add(001, "Google");
        My_sdict.Add(002, "Bing");
        My_sdict.Add(003, "Yahoo");
        My_sdict.Add(004, "Ask.com");
        My_sdict.Add(005, "AOL.com");
        // Initial number of key/value pairs
        Console.WriteLine("Key/Value pair: {0}",
                                My_sdict.Count);
        // After using Remove(TKey) method
        My_sdict.Remove(002);
        Console.WriteLine("Key/Value pair: {0}",
                                My_sdict.Count);
        // After using Clear() method
        My_sdict.Clear();
        Console.WriteLine("Key/Value pair: {0}",
                                My_sdict.Count);
    }
}

Output:

Key/Value pair: 5
Key/Value pair: 4
Key/Value pair: 0


如何检查 SortedDictionary 中键/值对的可用性?

在 SortedDictionary 中,您可以检查给定的键或值是否存在于指定的 SortedDictionary 中。SortedDictionary 类提供了两种不同的检查方法,这两种方法是:


  • contains key(TKey):此方法用于确定 SortedDictionary 是否包含具有指定键的元素。

  • contains value(tvvalue):此方法用于确定 SortedDictionary 是否包含具有指定值的元素。

示例:

// C# program to illustrate how to
// check the given key/value pair 
// is exists or not in SortedDictionary
using System;
using System.Collections.Generic;
class GFG {
    // Main Method
    static public void Main()
    {
        // Creating sorted dictionary
        // Using SortedDictionary class
        SortedDictionary<int, string> My_sdict =
             new SortedDictionary<int, string>();
        // Adding key/value pair 
        // in SortedDictionary
        // Using Add() method
        My_sdict.Add(001, "Google");
        My_sdict.Add(002, "Bing");
        My_sdict.Add(003, "Yahoo");
        My_sdict.Add(004, "Ask.com");
        My_sdict.Add(005, "AOL.com");
        // Using ContainsKey(TKey) method
        if (My_sdict.ContainsKey(004) == true) 
        {
            Console.WriteLine("Key Found..");
        }
        else
        {
            Console.WriteLine("Key Not Found..");
        }
        // Using ContainsValue(TValue) method
        if (My_sdict.ContainsValue("Baidu") == true)
        {
            Console.WriteLine("Value Found..");
        }
        else 
        {
            Console.WriteLine("Value Not Found..");
        }
    }
}

Output:

Key Found..
Value Not Found..


推荐阅读
author-avatar
人马上山_237
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有