在 List 中  有 sort 的功能
但如果裡面的資料不是 數字型態,要他們作 sort()  往往會作出不符合需求的排序
甚至作不出來(自定義的 class 要繼承  IComparable  但這是一件很麻煩的事)

並不是每一個 class 都要發展成 完美或者一個很龐大的物件
這時  可以透過直接在 sort 中寫入簡短的程式碼  來省略這個步驟



首先 讓我們來建立一個  Class

public Class cObj
    public mNum as integer
    public mNmae as string
    public mDate as new DateTimr
end Class



再來  讓我們自行建立一個以這個 class 為 T 的 List

Dim  newList as new list(of cObj)

再來 請自行 產生 數個    加入 newList 中

Dim new1 as new cObj
new1.mNum = 99
new1.mName = "new1"
new1.mDate = now

Dim new2 as new cObj
new1.mNum = 10
new1.mName = "new2"
new1.mDate = now

newList.add(new1)
newList.add(new2)

....... (省略....請自行建立數個資料 然後加入  newList)



再來 讓我們對 mNum 作排序

newList.sort( Function(item1 As cObj, item2 As cObj) item1.mNum.CompareTo(item2.mNum))

我們使用 mNum 這個基本資料型態(Integer)  中定義好的  CompareTo() 來作資料排序
如此  就可以順利對自定義的 List 作想要的排序



'================================================================================================
更進一步 可避免資料為 nothing 的方法
http://msdn.microsoft.com/en-us/library/w56d4y5z.aspx

 

更多的範例
http://www.developerfusion.com/code/5513/sorting-and-searching-using-c-lists/

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Rh 的頭像
    Rh

    程式狂想曲

    Rh 發表在 痞客邦 留言(0) 人氣()