- - PR -
ArrayListの中身を並び替え、指定した数だけ取り出したい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-03-21 18:23
たびたびお世話になります。
現在私は、クラスでDBからデータを取得し、それをArrayListに格納し、 それを画面で呼び出しGridViewなどにバインドさせているのですが、 呼び出し時にArrayListの任意のpropertyなどに格納されている値をもとに、 昇順に並び替え、さらに並び替えられたデータの上から指定した順位までのデータだけをGridViewにバインドさせたいと考え、色々調べてみたのですが、全く解決できず 皆様のお力を貸していただければと思い、投稿させていただきました。 詳しく書きますと、例えば、nameとdateというpropertyを持つクラスで、 sampleというfunction内において Dim reader As DbDataReader = command.ExecuteReader() Do While reader.Read() Dim test As New クラス test.name = reader.GetString(0) test.date = reader.GetString(1) ArrayList.Add(test) Loop Return ArrayList として、その戻り値を呼び出し Dim A As New クラス /*ここで処理を加えたい*/ GridView.DataSource = A.sample() GridView.DataBind() という場合、dateに格納されている値を元に、昇順に並び替え、 さらに並び替えられたデータの内上から5番目だけを取り出し、GridViewに表示させたいということです。 何か良い方法やご意見等ございましたら、ご教授いただければ幸いです。 皆様よろしくお願いいたします。 | ||||
|
投稿日時: 2007-03-21 18:41
ArrayList.Sort(IComparer)
ArrayList.CopyTo(Int32, Array, Int32, Int32) 詳細はそれぞれのヘルプを参照してください。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ [ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-03-21 18:41 ] | ||||
|
投稿日時: 2007-03-21 19:01
渋木宏明(ひどり)様。
早々にお返事ありがとうございます。 早速詳細のほう調べてみようと思います。 ありがとうございました。 | ||||
|
投稿日時: 2007-03-21 20:02
連続での投稿失礼いたします。
ただ今必死で調べてみたのですが、私の力が及ばず、 まだ理解にはいたっておりません。 もしよろしければ、この場合、IComparerには何を入れればよいのか、 ご教授いただければ幸いでございます。 ヒントをいただいておきながらまた質問をして申し訳ございません。 | ||||
|
投稿日時: 2007-03-21 20:22
ヒントを生かせるような検索をすると自己解決できたかもしれませんね。 ArrayList.Sort(IComparer) (microsoft.com) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-03-21 21:25
ご返事ありがとうございます。
ご指定のページは拝見したのですが、正直これをどのように表示させればよいのかなど わからない点が多く理解には及ばなかったため、もう少し勉強してみることにいたします。 また何かアドバイス等ございましたらご教授いただければ幸いです。 しつれいいたします。 | ||||
|
投稿日時: 2007-03-21 21:38
こんな感じです。 データの総件数にもよりますが、DBMS にソートさせて必要件数分を取得するような SQL を書いた方がよいでしょうけどね。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2007-03-21 21:57
囚人様。
ご丁寧に教えてくださってありがとうございます。 非常に勉強になります。 早速試してみます。 本当にありがとうございました。 |
1