博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中泛型的使用
阅读量:6852 次
发布时间:2019-06-26

本文共 2786 字,大约阅读时间需要 9 分钟。

 

命名空间:using System.Collections.Generic;

普通数组:在声明时必须制定数组的长度和数据类型;ArrayList:数组元素数据类型和长度不受限制,但效率稍微低些;泛型:类似于数组功能,其长度不受限制,数据类型在声明时必须指定。

C#中预定义了集中常用的泛型类,如:List<T>、Dictionary<TKey, TValue>、Queue<T>等等

1. List<T>

语法:List
<类型>
变量 = new List
<类型>
();List
<类型>
变量 = new List
<类型>
{ XXX, XXX, XXX}; // 声明并初始化

示例1:简单实用:声明、初始化、赋值、读取等操作。在下例中可以看出,变量list1可以任意的添加元素,长度不受限制。

// 声明方式1List list1 = new List();list1.Add(211);list1.Add(985);// 声明方式2List list2 = new List { 211, 985 };list2.Add(136);for (int i = 0; i < list2.Count; i++){    Console.Write(list2[i].ToString());}

2. Dictionary<TKey, TValue>

上例中泛型变量list1中存储的元素是Int类型的变量,而在实际的应用当中往往要比这更加复杂。Dictionary<Tkey, TValue>泛型类为C#预定义的泛型类,它所存储的每个元素由一对{key:value}两个变量组成。

  • 每个元素可以理解为一行记录,Key为主键,必须唯一,可以为Int、String等类型。
  • Value项可以为任意类型,可以是Int、String、数组等,也可以是实例化的对象。

① 简单使用

class Program{            static void Main(string[] args)    {        // 实例化三个User对象        User user1 = new User("李宁", 21);        User user2 = new User("耐克", 42);        User user3 = new User("阿迪", 31);        // 声明Dictionary泛型变量users        // Key的类型为Int;Value的类型为User        Dictionary
users = new Dictionary
(); // 向users添加“元素”,“元素”的key不能重复 users.Add(2, user1); users.Add(3, user2); users.Add(5, user3); // 循环遍历每个“元素” foreach (var p in users) { Console.Write(p.Key); Console.Write(p.Value.name); Console.Write(p.Value.age); } // 直接遍历元素的Values foreach (User u in users.Values) { Console.Write(u.name); Console.Write(u.age); } }}// User类class User{ public string name; // 姓名 public int age; // 年龄 public User(string name, int age) { this.name = name; this.age = age; }}

② 作为参数使用

class Program{    static void Main(string[] args)    {        User user1 = new User("李宁", 21);        User user2 = new User("耐克", 42);        User user3 = new User("阿迪", 31);                Dictionary
users = new Dictionary
(); users.Add(2, user1); users.Add(3, user2); users.Add(5, user3); Program.show(users); // 将泛型变量作为函数参数使用 } // 注意参数类型的书写格式 static void show(Dictionary
list) { foreach (var p in list) { Console.Write(p.Key); Console.Write(p.Value.name); Console.Write(p.Value.age); } }}class User{ public string name; // 姓名 public int age; // 年龄 public User(string name, int age) { this.name = name; this.age = age; }}

转载于:https://www.cnblogs.com/dingfangbo/p/5769560.html

你可能感兴趣的文章
在 Linux 中安装最新的 Thunderbird 邮件客户端
查看>>
HTTPClient模拟登陆21CN
查看>>
Golang 用指定网卡的IP发送HTTP请求
查看>>
网站安全狗IIS版 V4.0.15586 发布
查看>>
Docker存储驱动之AUFS简介
查看>>
Java中如何封装自己的类,建立并使用自己的类库?
查看>>
Java Http请求工具类
查看>>
iscsi集群搭建
查看>>
Flutter Web - 目标全平台开发的Flutter再下一城!
查看>>
Nginx代理Tomcat
查看>>
Apache与Tomcat的区别
查看>>
mysql—Access denied for user 'root'@'localhost' (using password:NO)
查看>>
hibernate 懒加载异常
查看>>
python3的zip函数
查看>>
《Git权威指南》读书笔记 第四章 git初始化
查看>>
《Head first HTML与CSS 第二版》读书笔记 第九章 盒模型
查看>>
《Python面向对象……》之目录
查看>>
集群入门简析及LB下LVS详解
查看>>
Linux与GPT
查看>>
管理或技术
查看>>