日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解析.Net編程接口剖析系列之比較和排序(3)_.Net教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:揭秘.net基礎(chǔ)知識(shí)錯(cuò)誤注意二十二點(diǎn)知識(shí)
1:command調(diào)用存儲(chǔ)過(guò)程的時(shí)候,如果輸出是dataset,selectcommand的command對(duì)象的connection先要指出,否則catch一輩子也是空的.. 2:存儲(chǔ)過(guò)程的varchar字段如果是x.x的這種格式,容易出現(xiàn)細(xì)

光說(shuō)太抽象,我們下面還是繼續(xù)上一節(jié)對(duì)學(xué)生進(jìn)行排序的問(wèn)題進(jìn)行討論。這里我們可以創(chuàng)建一個(gè)專(zhuān)門(mén)的學(xué)生比較類(lèi)StudentComparer, 而它則實(shí)現(xiàn)了IComparer的泛型接口System.Collections.Generic.IComparer<Student>,StudentComparer的作用是根據(jù)成績(jī)對(duì)學(xué)生進(jìn)行比較。為了將IComparer的優(yōu)越性體現(xiàn)出來(lái),我們這里在StudentComparer的構(gòu)造函數(shù)中增加了兩個(gè)參數(shù)subject和reverse,前者用于指定我們要按照何種科目成績(jī)進(jìn)行比較,而后者則指定是否將結(jié)果取反(當(dāng)然我們也可以使用Array.Reverse方法來(lái)將結(jié)果按照降序排列,這里只是實(shí)現(xiàn)方法之一)。好,這樣我們比較器就這樣設(shè)計(jì)好了,看看下面的代碼:

以下為引用的內(nèi)容: public class StudentComparer: System.Collections.Generic.IComparer<Student>
{
SubjectEnum _subject;
bool _reverse;
  
public StudentComparer(SubjectEnum subject, bool reverse)
{
_subject = subject;
_reverse = reverse;
}
  
#region IComparer<Student> Members
  
public int Compare(Student left, Student right)
{
if (left == null && right == null)
return 0;
else if (left == null)
return -1;
else if (right == null)
return 1;
  
//比較響應(yīng)科目的成績(jī)
int result = left.Scores[_subject].CompareTo(right.Scores[_subject]);
  
//如果反序,只要將結(jié)果取反即可
if (_reverse) result = -result;
return result;
}
 
#endregion
}

一個(gè)功能強(qiáng)大的比較器就這樣實(shí)現(xiàn)了,那么接下來(lái)我們就來(lái)實(shí)現(xiàn)將學(xué)生按照總分進(jìn)行從高到底的排序,這里我們只需要對(duì)main函數(shù)進(jìn)行稍微的修改就可以了,使用Array.Sort的另外一個(gè)重載方法Array.Sort (T[], Generic IComparer) 來(lái)進(jìn)行比較。

看到上面我們?cè)赟tudentComparer的構(gòu)造函數(shù)中傳入了Total(總分)和True(降序),我們看看執(zhí)行結(jié)果:

Name Total Chinese English Math
Alex  268    88  85  95
Rose  248 92 91 65
Jack  245 90 80 75
Michale 240 80      90 70

太棒了,IComparer是這樣的神奇,想象一下如果沒(méi)有IComparer而僅僅要用IComparable來(lái)實(shí)現(xiàn)上面的功能,將是多么麻煩的事情,更加重要的是,那會(huì)將Student類(lèi)的代碼變的一團(tuán)糟,就如同一個(gè)上班族卻天天要想著回家給自己種的蔬菜澆澆水,給自己養(yǎng)的豬喂喂食一樣,這些瑣碎的東西會(huì)讓你的生活一團(tuán)糟的。

分享:Windows CE.Net下矩陣鍵盤(pán)開(kāi)發(fā)設(shè)計(jì)詳解
引言 隨著現(xiàn)代科技日新月異的發(fā)展,作為新興產(chǎn)業(yè)的嵌入式移動(dòng)信息設(shè)備的應(yīng)用越來(lái)越廣。這些嵌入式設(shè)備中的PDA以其體積小、重量輕、便于攜帶、功能強(qiáng)大、功耗低等特點(diǎn)而備受青睞。鍵盤(pán)作

來(lái)源:模板無(wú)憂//所屬分類(lèi):.Net教程/更新時(shí)間:2009-09-05
相關(guān).Net教程