如鹏网.Net高级技术5.泛型集合及键值对

泛型集合和键值对在C#中比较常用,

该段课件中通过案例讲解泛型集合的使用方式.

如何自己定义泛型集合,泛型方法,泛型接口及使用

自定义的泛型如何通过where进行约束.

泛型中常用的几个泛型方法。

-------------------------------------------------

泛型集合

List<T>,

Dictionary<K,V> :键不能重复,值可以重复

List<T>,Dictionary<K,V>

案例:

合并两个集合中的重复项 案例:随机生成10个1-100之间的数放到List中,要求这10个数不能重复,并且都是偶数(添加10次,可能循环很多次。)

案例:

把分拣奇偶数的程序用泛型实现。List<int> 把123转换为:壹贰叁。

Dictionary<char,char> 计算字符串中每种字母出现的次数“Welcome ,to Chinaworld”,不区分大小写。

 -------------------------------------------------

自定义泛型

泛型的目的:还是代码重用。

T:一般叫做“类型参数”,把数据类型作为参数传递。

一般用T类表示或者以大写T开头的

比如:TKey,TValue、TOutput、TResult…

泛型类、泛型接口、泛型方法(泛型方法中的类型推断)、泛型委托(*)

------------------------------------------------

课后练习:

练习1:英汉翻译。可以使用WinForm做。

练习2:编写一个函数进行日期转换,将输入的中文日期转换为阿拉伯数字日期,比如:二零一二年十二月月二十一日要转换为2012-12-21。(处理“十”的问题:1.*月十日;2.*月十三日;3.*月二十三日;4.*月三十日;)4中情况对“十”的不同翻译。1→10;2→1;3→不翻译;4→0【年部分不可能出现’十’,都出现在了月与日部分。】

测试数据:二零一二年十二月二十一日(2012年12月21日)、二零零九年七月九日、二零一零年十月二十四日、二零一零年十月二十日

------------------------------------------------

泛型约束:
使用where关键字进行类型约束

约束多个参数:可以对多个参数应用约束,并对一个参数应用多个约束,如下:

C#:

 class Base{}

 class Test<T,U>

    where U:struct

    where T:Base,new(){}

如鹏网:http://www.rupeng.com

原文地址:https://www.cnblogs.com/wjs5943283/p/5242842.html