泛型--完全手册C#2.0

简介: 非泛型类(System.Collections) 对应的泛型类(System.Collections.Generic) ArrayList List Hashtable Di...
非泛型类(System.Collections) 对应的泛型类(System.Collections.Generic)
ArrayList List
Hashtable Dictionary
Queue Queue
Stack Stack
SortedList SortedList

使用泛型的建议:

1.如果需要对多种类型进行相同的操作处理,则应该使用泛型。

2。如果需要处理值类型,则使用泛型可以避免装箱拆箱带来的性能开销。

3.使用泛型可以在应用程序编译时发现类型错误,增强程序的健壮性。

4.减少不必要的重复编码,使代码结构更加清晰。

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //
使用List<T>替换ArrayList
            List<string> ls = new List<string>();
            ls.Add("
泛型集合元素1");
            ls.Add("
泛型集合元素2");
            ls.Add("
泛型集合元素3");
            foreach (string s in ls)
                Console.WriteLine(s);

        //使用Dictionary<Tkey,Tvalue>
            Console.WriteLine("Dictinary
泛型集合类举例");
            Dictionary<string, string> dct = new Dictionary<string, string>();
            dct.Add("
1", "1");
            dct.Add("
2", "2");
            dct.Add("
3", "3");
            foreach (KeyValuePair<string, string> kvp in dct)
                Console.WriteLine("{0}:{1}", kvp.Key, kvp.Value);
           
            //
使用Queue<T>
            Console.WriteLine("Queue
泛型集合类型:");
            Queue<string> que = new Queue<string>();
            que.Enqueue("
这是队列元素值1");
            que.Enqueue("
这是队列元素值2");
            foreach (string s in que)
                Console.WriteLine(s);

            //使用Stack<T>
            Console.WriteLine("Stack
泛型集合类举例");
            Stack<string> stack = new Stack<string>();
            stack.Push("
这是堆栈元素1");
            stack.Push("
这是堆栈元素2");
            foreach (string s in stack)
                Console.WriteLine(s);

            //使用SortedList<Tkey,Tvalue>
            Console.WriteLine("SortedList
泛型集合举例");
            SortedList<string, string> sl = new SortedList<string, string>();
            sl.Add("key1", "value1");
            sl.Add("key2", "value2");
            sl.Add("key3", "value3");
            sl.Add("key4", "value4");
            foreach (KeyValuePair<string, string> kvp in sl)
                Console.WriteLine("{0}:{1}", kvp.Key, kvp.Value);

            Console.ReadLine();
        }
       
    }
}

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
9月前
|
安全 程序员 API
C#操作手册(一):命名规范
C#操作手册(一):命名规范
|
SQL 关系型数据库 C#
原创C#多数据库组件(SQL+Oracle+MySQL)及用户操作手册|CSFramework.DB.dll
C/S框架网为广大用户原创定制基于C#语言的多数据库组件包及用户操作手册。
2327 0
|
Web App开发 XML C#
C#远程调用技术WebService修炼手册
一、课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebServi...
1767 0
|
存储 Java .NET
读书感受 - 软件工程师 - C#线程参考手册(多线程技术分析)
这几天,花了些时间,浏览了下《C#线程参考手册》,对初学者比较有用。。。       该书可以在我CSDN下载频道获得,请购买原书支持正版(http://lzhdim.download.csdn.net/)。
1217 0
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
15 0
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
70 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
55 0
|
2月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
59 0