转载:Collection -> .Net集合类型大全,只要灵活运用可以节省很多开发时间和提高程序运行效率

 http://blog.csdn.net/chengking/archive/2005/08/27/466286.aspx
   
<script type="text/javascript"> </script> <script type="text/javascript" src="http://blog.csdn.net/WebResource.axd?d=0trsAMRyJB8L2V66z1_JQA2&t=633220384786875000"></script> <script type="text/javascript"> // </script> <script type="text/javascript" src="http://blog.csdn.net/WebResource.axd?d=SpjHLWa-GWVWjnYUatWnLycpPVfmy-IA0gDKr2XCEzM1&t=633204507043750000"></script> <script type="text/javascript" src="http://blog.csdn.net/WebResource.axd?d=ebdKZXyuUnlDF9B91uglBqdIAEkKfoUlt6bu27GbvHY1&t=633220384786875000"></script> <script type="text/javascript"> </script>

★★【迎接光辉岁月|说声真的爱你|踏着灰色轨迹|遥望大地情人】★        

[首页♂]  DotNet 【ChengKing(ZhengJian)】

  CSDN |  技术中心 |  BLOG首页 |  我的首页 |  我的文章 |  联系作者 |  聚合  |   |  搜索 |  登录
  155篇原创: 0篇翻译: 0篇转载: 307695次点击: 599个评论: 10个Trackbacks
<script type="text/javascript">Include("Csdn.Blog.UserOnline");</script> <script type="text/javascript">Include("Csdn.Blog.ShowmeDataDeal");</script>

公告

<script language="javascript" type="text/javascript"> document.getElementById("Header1_HeaderTitle").outerHTML="
★★【迎接光辉岁月|说声真的爱你|踏着灰色轨迹|遥望大地情人】★        
";</script> Mr. Jian Zheng



Asp.net 2.0课程(PPT及
示例代码下载)


.NET系列丛书

C# GAME

网站(学习/源代码资源下载)

当前在线 <script src="http://www.whoisonline.net/?action=tracker&siteurl=http://blog.csdn.net/ChengKing" type="text/javascript"></script> 1

拥有.net力量!


发挥.net威力!


震憾.net天下!



(2006 AND 2007 MS-MVP)




订阅本Blog

+收藏至线上最爱Live
Subscribe by Anothr
Add to Google
加入至Live.com同步显示

订阅到抓虾


天气预报:

width="189" scrolling="no" height="190" frameborder="0" align="middle" src="http://weather.qq.com/inc/ss125.htm" vspace="0" hspace="0" marginheight="0" marginwidth="0" id="ifm2">

时间:

日历:

<script language="javascript" type="text/javascript"> var diarydays="";//"<2004-07-26><2004-07-25><2004-07-22><2004-07-21><2004-07-20><2004-07-19><2004-07-18><2004-07-16><2004-07-15><2004-07-14><2004-07-13><2004-07-12><2004-07-11><2004-07-10><2004-07-09><2004-07-08><2004-07-06><2004-07-05><2004-07-04><2004-07-03><2004-07-02><2004-07-01><2004-06-30><2004-06-27><2004-06-26>"; </script> <script language="JavaScript" type="text/javascript"> var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二"); var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31); var days = new Array("日","一", "二", "三","四", "五", "六"); var classTemp; var calendarHover="calendarHover"; var today=new getToday(); var year=today.year; var month=today.month; var newCal; //得到某月天数 function getDays(month, year) { if (1 == month) return ((0 == year % 4) && (0 != (year % 100))) ||(0 == year % 400) ? 29 : 28; else return daysInMonth[month]; } //得到当天时间信息 function getToday() { this.now = new Date(); this.year = this.now.getFullYear(); this.month = this.now.getMonth(); this.day = this.now.getDate(); } //生成日历 function Calendar() { newCal = new Date(year,month,1); //当前月的第一天 today = new getToday(); var day = -1; //用来判断日历中是否为当天 var startDay = newCal.getDay(); //当月开始时间 var endDay=getDays(newCal.getMonth(), newCal.getFullYear());//当月结束时间 var daily = 0; //用来生成日历中的天数值 if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth())) day = today.day; var caltable = document.all.caltable.tBodies.calendar; //得到日历表格的集合 var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear()); //得到当月天数 //生成日历 for (var intWeek = 0; intWeek < caltable.rows.length;intWeek++) for (var intDay = 0;intDay < caltable.rows[intWeek].cells.length;intDay++) { var cell = caltable.rows[intWeek].cells[intDay]; //得到单元袼 //生成字符串用于判断当天是否有日志 var montemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1); if ((intDay == startDay) && (0 == daily)){ daily = 1;} var daytemp=daily<10?("0"+daily):(daily); var d="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">"; //选择样式 if(day==daily) cell.className="calendarNow"; else if(diarydays.indexOf(d)!=-1) cell.className="calendarLink"; else if(intDay==6) cell.className = "calendarDaySat"; else if (intDay==0) cell.className ="calendarDaySun"; else cell.className="calendarTd"; //生成值 if ((daily > 0) && (daily <= intDaysInMonth)) { cell.innerText = daily; daily++; } else cell.innerText = ""; } document.all.year.value=year; document.all.month.value=month+1; } function subMonth() { if ((month-1)<0) { month=11; year=year-1; } else { month=month-1; } Calendar(); } function addMonth() { if((month+1)>11) { month=0; year=year+1; } else { month=month+1; } Calendar(); } //得到响应事件 function getDiary() { var mon=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1); var day=event.srcElement.innerText<10?("0"+event.srcElement.innerText):(event.srcElement.innerText); var d="<"+newCal.getFullYear()+"-"+mon+"-"+day+">"; if ("TD" == event.srcElement.tagName) if (("" != event.srcElement.innerText)&&(diarydays.indexOf(d)!=-1)) { diary.location="/chensheng913/archive/"+newCal.getFullYear()+"/"+mon+"/"+day+".aspx"; window.location.href = diary.location; } } function setDate() { if (document.all.month.value<1||document.all.month.value>12) { alert("月的有效范围在1-12之间!"); return; } year=Math.ceil(document.all.year.value); month=Math.ceil(document.all.month.value-1); Calendar(); } </script>
下月 : 上月
<script language="JavaScript" type="text/javascript"> document.write("
" + days[0] + "
"); for (var intLoop = 1; intLoop < days.length-1; intLoop++) document.write("
" + days[intLoop] + "
"); document.write("
" + days[intLoop] + "
"); </script>
<script language="JavaScript" type="text/javascript"> for (var intWeeks = 0; intWeeks < 6; intWeeks++) { document.write("
"); for (var intDays = 0; intDays < days.length;intDays++) document.write("
"); document.write(" "); } </script>
       
       
       
       
       
       
<script language="JavaScript" type="text/javascript"> Calendar(); </script>
相关文章,我尽量提供了图片示例和代码下载链接!
[如果遇到问题请给我发信息]
您可以直接点击相应链接进行下载 :)

如果文章对您有所帮助,请支持一下!
如果文章有不正确的地方,敬请指点!
多谢!!!!!

请选择下面链接,可以分类别的阅读文章:

最近访客

prophet08 的头像
prophet08
duibudui 的头像
duibudui
zhrren2 的头像
zhrren2
westlife207 的头像
westlife207
bobdreamer 的头像
bobdreamer
catkit 的头像
catkit
ericfine 的头像
ericfine
bohua2008 的头像
bohua2008
jeanso 的头像
jeanso
Ccode 的头像
Ccode

文章

收藏

相册

Good Blogs

论坛社区

其它链接

文章链接

我的其它Blog

学习站点

优秀团队列表

存档

最近评论



<script language="javascript" src="http://tag.csdn.net/urltag.aspx" type="text/javascript"></script> 作者tag:windows/.net c#之collection探讨 CSDN 推荐tag:排序 属性 

<script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

集合

  ((I)).集合类型 
    1.一般集合
        I.Array
            a.Array中的秩是Array中的维数.一个Array可以有一个或多个秩.
              Array具有固定的容量.如果有可变容量,则用Array.CreateInstance,其可以不从零开始存储.
        II.ArrayList集合类型
            a.是数组的复杂版本.Array是数组是固定的,而ArrayList类是根据需要自动扩展的.如果更改了Array.Capacity属性的值,则自动              进行内存重新分配和元素复制.
            b.ArrayList提供添加/或移除某一范围元素的方法.在Array中,只能一次获取或设置一个元素的值.
            c.使用 Synchronized方法可以很容易地创建ArrayList的同步版本.而Array将一直保持它,直到用户实现同步为止.
            d.ArrayList提供将只读和固定大小包装返回到集合的方法.而Array不提供.
            e.Array提供ArrayList所不具有的某些灵活性.
                I.可以设置Array的下限,但ArrayList的下限始终为零.
                II.Array可以具有多个维度,而ArrayList始终是唯一的.
                III.Array是特定类型(不是Object),比ArrayList性能好.ArrayList在存储和检索时经常发生拆箱和装箱操作现象.                  
        III.哈希表集合
            a.Hashtable类基于IDictionary接口,因此该集合中的每一元素是键和值对.
            b.Object.GetHashCode方法为其自身生成哈希代码.还可以通过使用Hashtable构造函数,为所有元素指定一个哈希函数.
        IV.SortedList集合类型
            a.SortedList类类似于Hashtable和ArrayList间的混合.
            b.SortedList的每一元素都是键对值,提供只返回键列表或只返回值列表的方法.
            c.如果想要一个保留键和值的集合,并且还需要索引的灵活性,则使用SortList.
        V.队列集合类型
            a.如果需要以信息在集合中存储的相同顺序来访问这些信息,请使用Queue.
            b.Enqueue将一个元素添加到Queue的队尾. Dequeue从Queue处移除最旧的元素. Peek从Queue的开始处返回最旧的元素,但不将从Queue中移除.
        VI.堆栈集合类型
            a.如果需要以信息在集合中存储的相反顺序来访问这些信息,请使用Queue.
            b.Push在Stack的顶部插入一个元素. Pop在Stack的顶部移除一个元素. Peek返回处于Stack顶部的元素,但不将其从栈顶上移除.
     2.位集合
        I.BitArray
           a.BitArray是一个集合类,容量与计数相同.通过增加Length属性来将元素添加到BitArray中;通过降低Length属性将元素删除.
           b.独特方法,如 And/Or/Xor/Not/SetAll.
           c.位于 System.Collections中.
        II.BitVector32
           a.速度快,精确存储32位,并且同时存储标志位和小整数.
           b.位于 System.Collections.Specialized中.
     3.专用集合
        I.NameValueCollection
           a.基于NameObjectCollectionBase,但NameValueCollection可以接受每个键多个值,而 NameObjectCollectionBase接受每个键,但只有一个值.  
   ((2)).选择用哪种集合
     *** Queue或Stack:需要一个序列列表,其中的元素在检索后放弃.否则,用其它集合.
     *** Queue或Stack:按一定的顺序访问这些元素(先进先出,后进先出),如果随机,用其它集合.
     *** 是否通过索引访问每一个元素?
         * ArrayList和StringCollection 提供通过元素的从零开始的*索引*对其元素进行访问.
         * (Hashtable) (SortedList) (ListDictionary) (StringDictionary) 提供通过元素的*键*对其元素进行访问
         * (NameObjectCollectionBase) 和 (NameValueCollection) 提供或者通过元素的从零开始的*索引*或者通过元素的*键*对其元素进行访问.
     *** 每一元素将包含一个值/一个值和一个键的组合还是一个键和多个值的组合?
         * 一个值: 使用基于 IList 的任何集合
         * 一个键和一个值: 使用基于 IDictionary 的任何集合.
         * 一个键和多个值: 使用 System.Collections.Specialized 命名空间中的 NameValueCollection 类.
     *** 是否需要用与元素方式不同的方式对元素排序?
         * Hashtable 通过键的哈希代码对元素进行排序.
         * SortedList 基于 IComparer 实现,通过键对元素进行排序.
         * ArrayList 提供 Sort方法该方法将 IComparer 实现作为一个参数采用.
     *** 是否需要信息的快速搜索和检索?
         * 对于小集合(十项或更少),ListDictionary 快于 Hashtable.
     *** 是否需要只接受字符串的集合?
         * StringCollection (基于 IList) 和 StringDictionary (基于 IDictionary) 位于 System.Collections.Specialized 命名空间中.
 
 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=466286


<script src="http://localhost:82/PromoteIcon.aspx?id=466286" type="text/javascript"></script> [收藏到我的网摘]   【ZhengJian(ChengKing)】发表于 2005年08月27日 12:50:00
.Net集合类型大全,只要灵活运用可以节省很多开发时间和提高程序运行效率"trackback:ping="http://tb.blog.csdn.net/TrackBack.aspx?PostId=466286" />--> <script type="text/javascript">function hide(){showComment();}</script>



特别推荐: 关闭
<script type="text/javascript">document.write("");</script>

����

#     王冀波 发表于2006-03-28 13:31:00  IP: 218.107.151.*
看了你的内容,有些是从MSDN上摘下来的,能不能加上一些你自己的见解,我觉得更有利于其他人阅读,谢谢

#      ChengKing 发表于2006-03-28 21:40:00  IP: 218.30.165.*
相对于MSDN,我比较喜欢看书, 以上是我从多本书中整理出来的.
不过,有好多书其内容是摘自MSDN的! 因为MSDN是最好的书!

<script language="javascript" type="text/javascript"> ad_width=468; ad_height=60; adcss=2; unionuser=19; ad_type='j'; count=5; </script>
<script type="text/javascript" src="http://tagegg.csdn.net/showads.js" language="javascript"></script> <script src="http://tagegg.csdn.net/b.aspx?action=displayad&unionuser=19&unionurl=http%3A%2F%2Fblog.csdn.net%2Fchengking%2Farchive%2F2005%2F08%2F27%2F466286.aspx&adcss=2&ad_type=j&width=468&height=60&ad_color=&ad_color_border=&count=5" language="JavaScript1.1" type="text/javascript"></script> <script type="text/javascript" src="http://blog.csdn.net/js/showgm.js" language="javascript"></script>

发表评论

 
大名:
网址:
评论 
   
<script src="http://www.csdn.net/common/counter.js" type="text/javascript"></script> width="0" scrolling="no" height="0" frameborder="no" src="http://www.csdn.net/ggmm/dd333.htm" border="0" name="myframe" id="myframe"> <script type="text/javascript"> </script> <script type="text/javascript"> </script> <script language="javascript" type="text/javascript"> </script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值