iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#泛型字典Dictionary的使用详解
  • 862
分享到

C#泛型字典Dictionary的使用详解

2024-04-02 19:04:59 862人浏览 独家记忆
摘要

本文主要介绍了C# 泛型字典 Dictionary的使用详解,分享给大家,具体如下: 泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含

本文主要介绍了C# 泛型字典 Dictionary的使用详解,分享给大家,具体如下:

泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。

很多非泛型集合类都有对应的泛型集合类,我觉得最好还是养成用泛型集合类的好习惯,他不但性能上好而且 功能上要比非泛型类更齐全。下面是常用的非泛型集合类以及对应的泛型集合类

非泛型集合类泛型集合类
ArrayListList<T>
HashTableDIctionary<T>
QueueQueue<T>
StackStack<T>
SortedListSortedList<T>

我们用的比较多的非泛型集合类主要有  ArrayList类 和 HashTable类,其中当我们经常性的操作 数据信息时往往用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,他给我们的帮助应该是非常大的,如果我们操纵的数据类型相对确定的化  用Dictionary<TKEy,TValue>集合类来存储数据就方便多了,例如我们需要在电子商务网站中存储用户的购物车信息( 商品名,对应的商品个数)时,完全可以用Dictionary<string,int > 来存储购物车信息,而不需要任何的类型转化。

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace L_Dictionary
{
    class Program
    {
        static void printDict(Dictionary<int, string> dict) 
        {
            if(dict.Count == 0)
            {
                Console.WriteLine("--没有数据");
                return;
            }
            else
            {
                Console.WriteLine("--打印数据");
            }

            foreach (KeyValuePair<int, string> item in dict)
            {
                Console.WriteLine("Key: " + item.Key + "  Value: " + item.Value);
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Dictionary 的基本使用");

            #region  本质
            // 拥有Hashtable的泛型
            // 以键、值对的方式存储   字典(键不能重复)

            #endregion

            #region  申明
            // 需要引用命名空间
            // using System.Collections.Generic;

            Dictionary<int, string> dict = new Dictionary<int, string>();
            #endregion

            #region  增
            Console.WriteLine("-----------------------增");
            // 键值 不能重复
            dict.Add(1, "123");
            dict.Add(2, "234");
            dict.Add(3, "345");
            //dict.Add(3, "345");  // 报错
            printDict(dict);
            #endregion

            #region  删除
            Console.WriteLine("-----------------------删除");
            // 只能通过键去删除
            // 删除不存在的 键, 没有反应。
            Console.WriteLine("删除键 --- 1");
            dict.Remove(1);
            Console.WriteLine("删除键 --- 4");
            dict.Remove(4);
            printDict(dict);

            // 清空
            Console.WriteLine("清空 ----");
            dict.Clear();
            printDict(dict);

            dict.Add(1, "123");
            dict.Add(2, "234");
            dict.Add(3, "345");
            #endregion

            #region  查询
            Console.WriteLine("-----------------------查询");
            // 1.通过键找到 对应的值 
            //  如果键不存在 报错!
            Console.WriteLine("查询键2: " + dict[2]);
            // Console.WriteLine(dict[4]); // 报错
            Console.WriteLine("查询键1: " + dict[1]);

            // 2.查询是否存在
            //    根据键查询
            if (dict.ContainsKey(1))
            {
                Console.WriteLine("查询 存在键值 1的元素");
            }
            // 根据值检测
            if (dict.ContainsValue("345"))
            {
                Console.WriteLine("查询 存在\"345 \"值的元素");
            }

            #endregion

            #region  改
            Console.WriteLine("-----------------------改");
            Console.WriteLine("修改 键=1 元素 值= \"666\" ");
            dict[1] = "666";
            printDict(dict);

            #endregion

            #region  遍历
            Console.WriteLine("-----------------------遍历");
            // 1.遍历所有键
            Console.WriteLine("---遍历键");
            foreach (int item in dict.Keys)
            {
                Console.WriteLine(item);
            }

            // 2.遍历所有值
            Console.WriteLine("---遍历所有值");
            foreach (string item in dict.Values)
            {
                Console.WriteLine(item);
            }
            // 3.遍历所有键值
            Console.WriteLine("---遍历所有键值");
            foreach (KeyValuePair<int, string> item in dict)
            {
                Console.WriteLine("Key: " + item.Key + "  Value: " + item.Value);
            }
            #endregion

            Console.ReadLine();
        }
    }
}

在这里插入图片描述

到此这篇关于C# 泛型字典 Dictionary的使用详解的文章就介绍到这了,更多相关C# 泛型字典 Dictionary内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#泛型字典Dictionary的使用详解

本文链接: https://www.lsjlt.com/news/149244.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#泛型字典Dictionary的使用详解
    本文主要介绍了C# 泛型字典 Dictionary的使用详解,分享给大家,具体如下: 泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含...
    99+
    2024-04-02
  • C#泛型字典Dictionary怎么使用
    这篇文章主要介绍了C#泛型字典Dictionary怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#泛型字典Dictionary怎么使用文章都会有所收获,下面我们一起来看看吧。泛型最常见的用途是泛型集合...
    99+
    2023-06-30
  • 关于Python字典(Dictionary)操作详解
    目录一、创建字典二、访问字典里的值三、修改字典四、删除字典元素五、字典键的特性六、字典内置函数&方法Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字...
    99+
    2023-05-15
    Python字典 Python Dictionary
  • C#泛型详解及关键字作用
    这篇文章主要来讲讲c#中的泛型,因为泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用。 一、什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (C...
    99+
    2024-04-02
  • C#泛型详解
    这篇文章主要讲解C#中的泛型,泛型在C#中有很重要的地位,尤其是在搭建项目框架的时候。 一、什么是泛型 泛型是C#2.0推出的新语法,不是语法糖,而是2.0由框架升级提供的功能。 我...
    99+
    2024-04-02
  • C#泛型的使用及示例详解
    目录一、什么是泛型二、为什么使用泛型三、泛型类型参数四、泛型类五、泛型约束六、泛型的协变和逆变七、泛型缓存这篇文章主要讲解C#中的泛型,泛型在C#中有很重要的地位,尤其是在搭建项目框...
    99+
    2024-04-02
  • Python必备技巧之字典(Dictionary)详解
    目录定义字典字典的访问字典键与列表索引增量构建字典字典键的限制字典值的限制运算符和内置函数内置字典方法Python中的字典由于是对象的集合属于复合数据类型,类似于列表。 定义字典 ...
    99+
    2024-04-02
  • C#之泛型详解
    目录一.泛型的特性1.性能2.类型安全3.二进制代码的重用4.代码的扩展5.命名约定二.使用类型1.先创建一个非泛型的简化链表类。2.下面编写一个泛型版本三.泛型类的功能1.默认值2...
    99+
    2024-04-02
  • C#实现Dictionary字典赋值的方法
    Dictionary<TKey,TValue> 类,表示键和值的集合。 Dictionary<TKey,TValue> 泛型类提供一组键到一组值的映射。 每次...
    99+
    2024-04-02
  • C#泛型语法详解
    一、为什么要有泛型? 我们在写一些方法时可能会方法名相同,参数类型不同的方法,这种叫做重载。如果只是因为参数类型不同里面做的业务逻辑都是相同的,那可能就是复制粘贴方法,改变参数类型,...
    99+
    2024-04-02
  • C#字典Dictionary的用法说明(注重性能版)
    前言 以键值对Dictionary<[key], [value]>形式存值,和哈希表很像也是一种无序的结构。 要使用Dictionary,需要先导入C#泛型命名空间Sys...
    99+
    2024-04-02
  • C#泛型约束中的引用详解
    本篇内容介绍了“C#泛型约束中的引用详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型约束中的引用/值类型约束使用 C# 泛型,编...
    99+
    2023-06-17
  • Go字典使用详解
    目录存储/查找原理限制字典声明字典赋值特殊类型修改值字典遍历总结字典特性和许多编程语言一样,在 Go 中,字典是一组键-值对( Go 中称键-元素对)的集合。 存储/查找原理 当我们...
    99+
    2022-11-21
    Go字典 Golang字典
  • 详解C++泛型装饰器
    目录c++ 装饰器对输出的解释 总结 c++ 装饰器 本文简单写了个 c++ 装饰器,主要使用的是c++ lamda 表达式,结合完美转发技巧,在一定程度上提升性能 #defin...
    99+
    2024-04-02
  • C++超详细讲解泛型
    目录1.了解泛型编程2.函数模板2.1简单示例2.2多个模板参数2.3模板实例化2.4模板和普通函数同时存在2.5函数模板不支持定义和声明分离3.类模板3.1简单示例3.2成员函数声...
    99+
    2024-04-02
  • Golang泛型的使用方法详解
    目录1. 泛型是什么2. 泛型的简单使用2.1. 泛型示例2.2. 自定义泛型类型2.3. 调用带泛型的函数3. 自定义泛型类型的语法3.1. 内置的泛型类型any和comparab...
    99+
    2024-04-02
  • C#泛型的使用案例
    有这样一个有关汽车的类。 public class Car { public int ID { get; set; } public ...
    99+
    2022-11-13
    C# 泛型 案例
  • Java泛型通配符的使用详解
    目录泛型在继承方面的体现通配符的使用 有限制条件的通配符的使用自定义泛型的测试泛型在继承方面的体现 类A是类B的父类,G<A>和G<B>二者不具有子...
    99+
    2023-01-13
    Java泛型通配符
  • TypeScript中泛型的使用详细讲解
    目录一、泛型程序设计是一种编程风格或编程范式二、案例:传入的参数类型与返回的类型一样三、形式类型参数四、泛型约束五、泛型函数六、泛型函数类型推断补充:应用场景总结一、泛型程序设计是一...
    99+
    2022-11-13
    typescript泛型使用 ts 泛型
  • c#泛型怎么使用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作