none
有關StringCollection的排序問題 RRS feed

  • 問題

  • 開發工具:Visual Basic 2005

    現在我有一個StringCollection,如果我想要把他裡面的內容排序,應該要如何做才好呢?

    有內建的函數嗎?還是要自己寫?

    如果是String()呢?有相關的排序方法嗎?

    謝謝!

    2007年1月10日 上午 11:07

解答

  • 集合物件有繼承 IComparer 的才有排序的能力,比如說 ArrayList 。

    若是字串陣列可以用 Array.Sort() 排序

    2007年1月10日 下午 01:34
    版主
  • 如果需要型別安全的話,可以用 List<string>,它有一個 Sort() 方法可以排序,你也可以複寫 IComparer 來改變排序的方式 .
    2007年1月10日 下午 02:19
    版主
  • 如果你要做 Key-Value Pair 的話,可以考慮使用 Dictionary<T, T> 來做,但多維的就一定要用 Array,不過最好不要實作太多維度 ... 會有 Performance 的問題,通常實作三個維度就很多了 .
    2007年1月10日 下午 02:41
    版主

所有回覆

  • 集合物件有繼承 IComparer 的才有排序的能力,比如說 ArrayList 。

    若是字串陣列可以用 Array.Sort() 排序

    2007年1月10日 下午 01:34
    版主
  • 如果需要型別安全的話,可以用 List<string>,它有一個 Sort() 方法可以排序,你也可以複寫 IComparer 來改變排序的方式 .
    2007年1月10日 下午 02:19
    版主
  • List<string>,請問一下這個在VB2005中是指 List(Of String)嗎?

    那他的存取的速度和StringCollection比起來那個比較快速呢?

    好像Array是最快的對吧?但是好像Array在新增、插入或刪除的時候會比較麻煩...

    2007年1月10日 下午 02:30
  • 謝謝!

    所以說如果要是用StringCollection排序的話就得自己撰寫排序的函數了嗎?

    還有請問如果是ArrayList或List(Of String)的話有辦法做出像Array一樣的多維度的嗎?

    像a(0,0,0)之類的

    還是如果要多維度的一定得用Array?

    2007年1月10日 下午 02:34
  • 如果你要做 Key-Value Pair 的話,可以考慮使用 Dictionary<T, T> 來做,但多維的就一定要用 Array,不過最好不要實作太多維度 ... 會有 Performance 的問題,通常實作三個維度就很多了 .
    2007年1月10日 下午 02:41
    版主
  • 看一下線上手冊就知道了,明確有寫到 ArrayList 是一維。

    是繼承集合物件也大概知道是一維吧...

    2007年1月10日 下午 02:43
    版主