C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ArrListでソート


(過去ログ 72 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■41955 / inTopicNo.1)  ArrListでソート
  
□投稿者/ asuka (1回)-(2009/10/05(Mon) 15:45:45)

分類:[C#] 

INIファイルから情報を取得し、記載されている並順に従ってリストビューへ表示を行いたいのですが、
どのように実装すべくか御教授願えれば幸いです。

---
例:INIファイル
[SECTION1]
Host = a
Row = 3 //並順
[SECTION2]
Host = b
Row = 1
[SECTION3]
Host = c
Row = 2
---

セクションの最大値が3固定だとして、

上記のよな情報をHost(string)とRow(int)をメンバとした構造体を用意して取得しております。

ただ、構造体にはセクション1から順に取得するため、そのままリストビューに表示すると
a
b
c
となってしまいます。

これを一旦二次元のArrListを用意し、Rowでソートしたものを表示したいのですが、

具体的な記述方法が分からず困っております。

また、このような使い方はおかしい、こうすべきだ、などのご意見ありましたら教えて頂ければ幸いです。

期待する結果は下記の通りです。
b
c
a

引用返信 編集キー/
■41958 / inTopicNo.2)  Re[1]: ArrListでソート
□投稿者/ オショウ (334回)-(2009/10/05(Mon) 16:10:58)
2009/10/05(Mon) 16:11:54 編集(投稿者)
2009/10/05(Mon) 16:11:50 編集(投稿者)
2009/10/05(Mon) 16:11:36 編集(投稿者)

■No41955 (asuka さん) に返信
> これを一旦二次元のArrListを用意し、Rowでソートしたものを表示したいのですが、
> 
> 具体的な記述方法が分からず困っております。

  いろいろ方法はあるのですが・・・

  http://dobon.net/vb/dotnet/programing/icomparer.html

  ここを参考に・・・

  で、因みに構造体にソート機能を付加できます。

※ 私が作ったプログラムの一部抜粋

    Public Enum SENSOUR_TYPE1 As Integer
        TYPE_None = 0
        TYPE_SingleAxis
        TYPE_DoubleAxis
    End Enum

    Public Enum SENSOUR_TYPE2 As Integer
        TYPE_None = 0
        TYPE_Running
        TYPE_Lifting
    End Enum

    Public Structure MASTER_DATA
        Implements IComparable
        Public Name As String
        Public Size As Single
        Public D_Size As Integer
        Public X_Size As Integer
        Public Type1 As SENSOUR_TYPE1
        Public Type2 As SENSOUR_TYPE2
        Public Function CompareTo(ByVal obj As Object) As Integer Implements IComparable.CompareTo
            Dim iRet As Integer
            iRet = Me.Name.CompareTo(DirectCast(obj, MASTER_DATA).Name)
            If iRet = 0 Then
                iRet = Me.Type1.CompareTo(DirectCast(obj, MASTER_DATA).Type1)
                If iRet = 0 Then
                    iRet = Me.Type2.CompareTo(DirectCast(obj, MASTER_DATA).Type2)
                End If
            End If
            Return iRet
        End Function
    End Structure

  こんな風に・・・

以上。参考まで

引用返信 編集キー/
■41962 / inTopicNo.3)  Re[2]: ArrListでソート
□投稿者/ asuka (3回)-(2009/10/05(Mon) 16:50:05)
オショウさん、お返事ありがとうございます。
m(__)m

助かりました!

更に色々な方法があって勉強になりました。

今回は一度読込んだホスト情報と並順をRowでソートし直してからリストビューに反映させることで実現致しました。

int[] nKeys = new int[3];
string[] strHostName = new string[3];
Array.Sort(nKeys, strHostName);
listView.Items.Add(strHostName[i], 0);

悩んでいたことがだったの数行で出来感謝です。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -