Welcome 微信登录

首页 / 软件开发 / C#

构建可反转排序的泛型字典类(1)--雏形

构建可反转排序的泛型字典类(1)--雏形

构建可反转排序的泛型字典类(1)--雏形2010-11-26构建可反转排序的泛型字典类前言前段时间为了查找泛型资料,我翻译了O"Reilly 出版的《C# Cookbook》这本书的几个关于泛型的章节。其中“4.8 反转Sorted List里的内容”(见http://cgbluesky.blog.163.com/blog/static/2412355820081211016581/ )这一节中有一个接近1300行代码的例子。当时看...
构建可反转排序的泛型字典类(2)--排序方向

构建可反转排序的泛型字典类(2)--排序方向

构建可反转排序的泛型字典类(2)--排序方向2010-11-262. 排序方向你希望ReversibleSortedList类中的元素是以TKey(键)的顺序进行存储的,并且它即可以从小排到大,也可以从大排到小。当然,最佳方式就是在添加元素时找到合适的位置插入,插入后元素就已经按顺序排好。在一个有序数组中查找合适的插入点这样的算法并不困难,但FCL已经帮我们实现了,而且是采用速度最快的二分查找法(在MSDN中被称为“二进制搜索法”)...
构建可反转排序的泛型字典类(3)--实现元素添加及自动扩展

构建可反转排序的泛型字典类(3)--实现元素添加及自动扩展

构建可反转排序的泛型字典类(3)--实现元素添加及自动扩展2010-11-263. 实现元素添加及自动扩展您是一单位CEO,单位占地50亩,这几年在你的带领下,公司不断发展壮大,原来50亩地已经不够用。公司急需扩大地盘,这个现实问题摆在你面前,该怎么办?到旁边单位抢地?不行,现在是法制社会。有两个解决方案,第一是买一块50亩的地,这样你的公司就有两个办公地点,缺点是不能统一管理,两个地点的员工交流不顺畅。第二是买一块100亩的地,把原来的地卖掉,公司全部搬...
构建可反转排序的泛型字典类(4)--IDictionary接口

构建可反转排序的泛型字典类(4)--IDictionary接口

构建可反转排序的泛型字典类(4)--IDictionary接口2010-11-26C#对集合类型有统一的规范。它的好处不言而喻,所有集合类都有一些统一的调用方法和属性,这使得学习成本大大降低。统一的规范就是通过接口来实现的(关于接口,如果不熟,请参考http://www.enet.com.cn/eschool/video/c/30.shtml ),另一方面一些类也会直接调用这些标准接口,使得我们写出来的类有更好的兼容性。最典型的例子莫过于IEnumerab...
构建可反转排序的泛型字典类(6)--实现IDictionary接口中的Keys和Values属性

构建可反转排序的泛型字典类(6)--实现IDictionary接口中的Keys和Values属性

构建可反转排序的泛型字典类(6)--实现IDictionary接口中的Keys和Values属性2010-11-266. 实现IDictionary接口中的Keys和Values属性现在我们可以着眼于IDictionary接口的实现。第4节中,专门针对这个接口做了一 个最简化的例子,我们来回顾一下,它是怎么实现IDictionary接口中的Keys和Values属性的。public ICollection Keys { //返回所有键的集合 ge...
构建可反转排序的泛型字典类(7)--实现IDictionary接口

构建可反转排序的泛型字典类(7)--实现IDictionary接口

构建可反转排序的泛型字典类(7)--实现IDictionary接口2010-11-267. 实现IDictionary接口前面做了很多努力,现在终于可以实现 IDictionary接口了。当然,之所以要先实现它,目的之一还是为了之前留下的 一点遗憾:在foreach中使用DictionaryEntry访问集合中的元素。需要 注意,由于ReversibleSortedList类最主要的接口是泛型IDictionary接口,实 现非泛型IDictionary接...
构建可反转排序的泛型字典类(9完)--完善

构建可反转排序的泛型字典类(9完)--完善

构建可反转排序的泛型字典类(9完)--完善2010-11-269. 完善大楼已经盖好,剩下的工作就是装修,装修好就可以入住了 。从本文的题目得知,这是一个可反转排序的集合类,但我们只实现了降序插入 功能,如果希望把升序转换为降序该怎么办呢?此例的解决方法是声明一个代表 排序方向的属性Comparer,并加入一个sort方法,调用sort方法时根据Comparer 属性进行排序:private ListSortDirection _currentSortDi...
C# 4.0初探 - dynamic关键字

C# 4.0初探 - dynamic关键字

C# 4.0初探 - dynamic关键字2010-11-26 博客园 飘遥C#新增了dynamic关键字,正因为这一个小小的关键字,C#动态特性向前迈进 了一大步。dynamic是一个类型关键字,声明为dynamic的类型与" 静态类型"(这里的静态类型是指编译时确定的类型,下同)相比最大的特 点它是"动态类型",它会运行时尝试调用方法,这些方法的存在与否 不是在编译时检查的,而是在运行时查找,如果方法存在并且参数...
C#实现链表

C#实现链表

C#实现链表2010-11-26链表:链表是用一组任意的存储单元来存储线性表中的数据元素。为此,在存储数据元素时,除了存储数据元素本身的信息外,还要存储与它相邻的数据元素的存储地址信息。这两部分信息组成该数据元素的存储映像,称为结点(Node)。把存储据元素本身信息的域叫结点的数据域,把存储与它相邻的数据元素的存储地址信息的域叫结点的引用域。节点类:using System;using System.Collections.Generic;using Sy...
构造C#语言的爬虫蜘蛛程序

构造C#语言的爬虫蜘蛛程序

构造C#语言的爬虫蜘蛛程序2010-12-03C#特别适合于构造蜘蛛程序,这是因为它已经内置了HTTP访问和多线程的能力,而这两种能力对于蜘蛛程序来说都是非常关键的。下面是构造一个蜘蛛程序要解决的关键问题:⑴ HTML分析:需要某种HTML解析器来分析蜘蛛程序遇到的每一个页面。⑵ 页面处理:需要处理每一个下载得到的页面。下载得到的内容可能要保存到磁盘,或者进一步分析处理。⑶ 多线程:只有拥有多线程能力,蜘蛛程序才能真正做到高效。⑷ 确定何时完成:不要小看这...
用C#制作印章

用C#制作印章

用C#制作印章2010-12-03制作印章来说,主要是如何让字均匀的显示在弧线段上,那么一般的印章要么以圆或者椭圆为底图,不过这两者的算法大致相同,为了方便说明,如下就用相对简单的圆来举例说明,如果需要做椭圆的话,可以在我的基础上进行扩展,因为核心算法是一样的,相对于圆来说,椭圆求弧长以及各个字符的位置,这两点相对麻烦些,但是这两者都可找到相应的数学公式。这里首先提一点,我这篇文章部分借鉴了codeproject的一个例子,原文可以参看如下地址。http:...
在C#程序中嵌套播放器

在C#程序中嵌套播放器

在C#程序中嵌套播放器2010-12-03 博客园 liulanglang昨天写程序,需要在页面中嵌套播放器,用来播放服务器上的视频文件。本 来想使用GridView控件的中提供的HyperLinkField子控件,但是实验了几次发现 这个子控件调用播放器不行,只能调用网页和文件例如,我以前写过的http://www.cnblogs.com/liulanglang/archive/2007/06/16/785411.html属性设置:1.调用服务器上文件夹...
C#控制鼠标消息

C#控制鼠标消息

C#控制鼠标消息2010-12-03我的程序不希望鼠标碰到窗体上的listBox,该怎么办啊?或者让鼠标碰不到整个窗体,只可以点击关闭按钮时才可以关闭窗体也可以。在有就是干脆让鼠标失灵,设置一个键盘关闭程序你可以在Application中添加以消息的过虑及处理,这样可以达到控制鼠标消息的功能,比如如下的代码:class MsgFilter : IMessageFilter{public bool PreFilterMessage(ref Message m...
<< 41 42 43 44 45 46 47 48 49 50 >>