泛型--完全手册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/

转载请注明:博客园

目录
相关文章
|
安全 程序员 API
C#操作手册(一):命名规范
C#操作手册(一):命名规范
|
SQL 关系型数据库 C#
原创C#多数据库组件(SQL+Oracle+MySQL)及用户操作手册|CSFramework.DB.dll
C/S框架网为广大用户原创定制基于C#语言的多数据库组件包及用户操作手册。
2459 1
|
Web App开发 XML C#
C#远程调用技术WebService修炼手册
一、课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebServi...
1972 0
|
存储 Java .NET
读书感受 - 软件工程师 - C#线程参考手册(多线程技术分析)
这几天,花了些时间,浏览了下《C#线程参考手册》,对初学者比较有用。。。       该书可以在我CSDN下载频道获得,请购买原书支持正版(http://lzhdim.download.csdn.net/)。
1290 0
|
10月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
200 3
|
9月前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
545 12
|
10月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
397 4
|
安全 程序员 编译器
C#一分钟浅谈:泛型编程基础
在现代软件开发中,泛型编程是一项关键技能,它使开发者能够编写类型安全且可重用的代码。C# 自 2.0 版本起支持泛型编程,本文将从基础概念入手,逐步深入探讨 C# 中的泛型,并通过具体实例帮助理解常见问题及其解决方法。泛型通过类型参数替代具体类型,提高了代码复用性和类型安全性,减少了运行时性能开销。文章详细介绍了如何定义泛型类和方法,并讨论了常见的易错点及解决方案,帮助读者更好地掌握这一技术。
195 11