前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#泛型

C#泛型

作者头像
拾点阳光
发布2018-05-10 17:57:31
1.7K0
发布2018-05-10 17:57:31
举报
文章被收录于专栏:码云1024

泛型(Generic) 是C# 2.0中的新增元素。这种机制允许将类名作为参数传递给泛型类型,并生成相应的对象。将泛型(包括类、接口、方法等)看作模板可能更好理解,模板中的变体部分将被作为参数传进来的类名称所代替,从而得到一个新的类型定义。

  通过泛型可以定义类型安全类,而不会损害类型安全、性能或工作效率。您只须一次性地将服务器实现为一般服务器,同时可以用任何类型来声明和使用它。为此,需要使用 <和 > 括号,以便将一般类型参数括起来。

  1. List<string> list = new List<string>(); //定义并初始化一个list的范型集合。

  泛型有助于您最大限度地重用代码、保护类型的安全以及提高性能。

  可以创建泛型集合类,来替代 System.Collections 中的集合类。

  可以创建自己的泛型接口、泛型类、泛型方法等。

  可以对泛型类进行约束以访问特定数据类型的方法。

  在使用泛型以前,我们要在程序的开头引入using System.Collections.Generic空间。 而在C#中Generic为我们提供的泛型类型有List、Directory等。

List


  List类表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。T为类型参数,代表列表中元素的类型。该类实现了IList泛型接口,是ArrayList类的泛型等效类,其大小可按需动态增加。

List的声明

  主要利用System.Collections.Generic命名空间下面的List泛型类创建集合,语法如下:

代码语言:javascript
复制
List<T> ListOfT = new List<T>();

其中的"T"就是所要使用的类型,既可以是简单类型,如string、int,也可以是用户自定义类型。

List的属性

  List常用的属性有Count与Capacity,其中:Count是获取List中的元素个数;Capacity是获取或设置List中可容纳元素的个数。

代码语言:javascript
复制
List<string> list=new List<string>();
list.Add("a"); //增加元素
list.Add("b");
int count=list.Count; //count值为2
list.Capacity=5; //设置可容纳元素个数为5

List的方法

  List可以灵活的增加、删除、插入、清除元素,我们可以通过它的 Add、RemoveAt、Insert、Clear等方法来操作。

代码语言:javascript
复制
List<string> list = new List<string>();
list.Add("aa"); //增加元素
list.Add("bb");
list.RemoveAt(0); //删除索引是为0元素
list.Insert(0, "bb"); //在索引为0的位置插入元素
list.Clear(); //清除所有元素

  除了上面介绍的方法以外,还有很多,这里就不在一一介绍。

List的元素访问

  List在增加完数据以后,可以通过下标索引来访问。

代码语言:javascript
复制
List<string> list=new List<string>();
list.Add("a");
list.Add("b");
Console.WriteLine(list[0]); //下标访问

Directory


  在C#中,Dictionary提供快速的基于兼职的元素查找。它的结构是这样的:Dictionary<[key], [value]> ,当有很多元素的时候可以使用它。它包含在System.Collections.Generic名空间中。在使用前,你必须声明它的键类型和值类型。任何键都必须是唯一的,键不能为空引用null,若值为引用类型,则可以为空值。

创建及初始化

  以 key 的类型为 int , value的类型为string 为例:

代码语言:javascript
复制
Dictionary<int,string> myDictionary=new Dictionary<int,string>();

属性

  Dictionary<[key], [value]> 常用的属性有Count、Keys、Values,其中:Count是获取 Dictionary<[key], [value]> 中的元素个数,Keys表示获取 Dictionary<[key], [value]> 中的键的集合, Values 表示 Dictionary<[key], [value]> 中的所有值的集合。

方法

  C#为我们提供了一些操作Dictionary<[key], [value]>常用的方法如下表:

序号

方法名 & 描述

1

public virtual void Add( [key] key, [value] value ); 向字典中添加一元素。

2

public virtual void Clear(); 移除所有的元素。

3

public virtual bool ContainsKey( [key] key ); 判断字典中是否包含指定的键。

4

public virtual bool ContainsValue( [value] value ); 判断字典中是否包含指定的值。

5

public virtual void Remove( [key] key ); 移除带有指定的键的元素。

遍历元素

  Dictionary<[key], [value]>通过KeyValuePair遍历每一个元素。以 key 的类型为 int , value的类型为string 为例:

代码语言:javascript
复制
foreach (KeyValuePair<int, string> kvp in dic)
{
Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);
}

元素访问

  Dictionary<[key], [value]>使用键访问元素。如下代码:

代码语言:javascript
复制
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(1, "1");
string value=dic[1]; // 获取key为1的值
dic[1]="11"; // 设置key为1的值
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • List
  • Directory
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档