Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
リストボックス内の並び替えに関して(文字列+数字)
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10060#CommentId17213
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
shu
 (社会人)
投稿日時
2011/2/21 21:39:00
> *****A1
> *****A10
> *****A2
> *****A3
前6桁と残りに分け、残りの部分を数値としてみてソートする
ということですか?
IComparerを実装したクラスを作るといろいろなソートが出来ます。
以下はList(of String)のソート例です。
ソート用クラス
Private Class clsComp
Implements IComparer(Of String)
Public Function Compare(ByVal x As String, ByVal y As String) As Integer Implements System.Collections.Generic.IComparer(Of String).Compare
'--- x, yを各々分離
Dim x1 = x.Substring(0, 6)
Dim x2 = CInt(x.Substring(6))
Dim y1 = y.Substring(0, 6)
Dim y2 = CInt(y.Substring(6))
Dim intRet As Integer
'--- 最初の部分を比較
intRet = String.Compare(x1, y1)
'--- 最初の部分が同じなら残りの部分を比較
Select Case intRet
Case 0
intRet = x2.CompareTo(y2)
End Select
Return intRet
End Function
End Class
'--- データ追加
Dim list = New List(Of String)
list.add(~)
list.add(~)
list.add(~)
list.add(~)
'--- clsCompを使ってソート
list.Sort(New clsComp)