DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[
親記事をトピックトップへ
]
このトピックに書きこむ
過去ログには書き込み不可
[ トピック内全4記事(1-4 表示) ] <<
0
>>
■33806
/ inTopicNo.1)
Re[3]: 配列を持つ自作クラスで、入れ替える関数を作成したい。
▼
■
□投稿者/ kiku
一般人(3回)-(2018/02/07(Wed) 13:11:04)
db_dataからHongliangさんご提案のList(Of Book)に積み替えるメソッドを
作成し、積み替え実行する。
その上でList(Of Book)の形でLINQなどを使用して必要なソートを実行。
List(Of Book)からdb_dataへ積み替えるメソッドを作成し実行。
10000万件程度であればそんなに遅くならないと
思いますし、それよりもソートが柔軟に行えるメリットの方が大きいと
思いました。
引用返信
削除キー/
編集
削除
■33805
/ inTopicNo.2)
Re[2]: 配列を持つ自作クラスで、入れ替える関数を作成したい。
▲
▼
■
□投稿者/ ken
一般人(2回)-(2018/02/07(Wed) 12:09:38)
http://VB.net(現状2010を使用中)
コメントありがとうございます。
ご指摘の点はごもっともなのですが、プログラムを0から書いているのでなく、前述のようなプログラムですでにいろいろな機能が実装され、クラスのセーブ/ロードなど含めて今からすべてを書き直すのは大変な状況にございます。
現状はdb_data.vbに
<Serializable()>
Public Class db_data
Public shoshi(10000, 14) As String
Public name(10000) As String
End Class
と書き、メインフォームのコードForm_main.vbで
Public Class Form_main
Public db_dat(10) As db_data
<略>
For i = 0 To db_dat.Length - 1
db_dat(i) = New pat_data
としています。
下手くそなプログラムで申し訳ありませんが、よろしくお願いいたします。
引用返信
削除キー/
編集
削除
■33804
/ inTopicNo.3)
Re[1]: 配列を持つ自作クラスで、入れ替える関数を作成したい。
▲
▼
■
□投稿者/ Hongliang
大御所(539回)-(2018/02/07(Wed) 11:50:23)
ソートのことを考える前にまず提案なのですが、
> db_dataというクラスを用いると、最大10000個のデータ列を持つことができ、各1つのデータは、書誌という14個の文字列、名前という一つの文字列を持っています。
であれば、まずこの「1つのデータ」をクラス化できませんか?
つまり
Class Book
Dim Shosi As String(13) ' 添え字0-13までで14個
Dim Name As String
End Class
みたいな。
そうすれば、Bookの配列(List(Of Book)などの方がいいかも)を持つだけで済み、
2つの配列を同時に並び替えるだとか考えずに済み、
標準ライブラリに定義されているソートメソッドを使用できるようになりますが。
引用返信
削除キー/
編集
削除
■33803
/ inTopicNo.4)
配列を持つ自作クラスで、入れ替える関数を作成したい。
▲
▼
■
□投稿者/ ken
一般人(1回)-(2018/02/07(Wed) 11:25:30)
環境/言語:[VB.net(現状2010を使用中)]
分類:[.NET]
2018/02/07(Wed) 11:27:43 編集(投稿者)
以下のようなデータ列を格納するクラスを作成しました。
<Serializable()>
Public Class db_data
Public shoshi(10000, 14) As String
Public name(10000) As String
db_dataというクラスを用いると、最大10000個のデータ列を持つことができ、各1つのデータは、書誌という14個の文字列、名前という一つの文字列を持っています。
最終的に行いたいことは、ソートで、例えばshoshiの4つ目の文字列を各々比較して、昇順に並び替えるとか、あるいはタイトル順に並び替えるなどです。いずれのデータ要素(shoshiの14個とタイトル1個)もソート対象にする可能性があります。
例えばshoshiの1番目に生年月日、2番目に就職日が入っているとして、生年月日順、就職日順のいずれでもデータ列を並び替えられるようにしたいです。
とりあえず簡単なバブルソートで並び替えることを考えていますが、このためには
クラスdb_data(a)とdb_data(b)の内容をそっくり入れ替えるような関数(orサブルーチン)Swapをdb_dataクラスの中に定義しておきたいと思います。
この際のクラスの定義の仕方などをご教授ください。
引用返信
削除キー/
編集
削除
トピック内ページ移動 / <<
0
>>
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-