
C#についての質問です。
現在、ArrayListを用いた情報管理リストのプログラムを作成しています。
そのプログラムにソートを行う機能と、検索機能をつけたいのですが、そこで質問です。
ArrayList内の要素を、「特定のフィールド(例えば氏名であったり、年齢であったりするのですが…)を基準として昇順または降順にソートする」という処理、またあるフィールドのみを基準に検索を行うという処理を行う際、ArrayListを二次元配列のように使用することが出来たら便利だな、と思ったのですが、そのようなことは可能でしょうか?
いろいろと試したり、独自に調べてはみたのですが、いまいちわからず、質問させていただきました。
お分かりになられる方がいらっしゃいましたら、ご教授いただければと思います。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ArrayListを継承した独自のクラスを定義して[]のインデクサを定義すれば可能でしょう
class Person {
private string name;
private int age;
Person( string sName, int nAge ) {
Name = sName;
Age = sAge;
}
public Name {
get { return name; }
set ( name = value; }
}
public Age {
get { return age; }
set { age = value; }
}
}
class myAL : ArrayList
{
public virtual object this[ int nIndex, int nType ] {
get {
object obj = this[nindex];
// Namespaceは実際のNamesapceに置換してください
if ( obj.GetTye() == Type.GetType( "NameSpace.Person" ) ) {
Person p = (Person)obj;
switch( nType ) {
case 0:
return p.Name;
case 1:
return p.Age;
}
}
// nTypeが0または1以外 および objがPerson以外の型
return null;
}
}
}
といった具合の実装で ・・・
まだクラスやメソッドについて勉強をし始めたばかりなのでインデクサについて詳しく理解しておらず、こういうときに使えばいいのだな、ということを思いつきませんでした。
ご丁寧に、コード例までありがとうございます*
アドバイスを参考にしながら、挑戦してみようと思います。
本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- Windows 10 数年前からWindows10 の Update ができないです。なぜですか? 7 2022/11/09 06:03
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(パソコン・スマホ・電化製品) エクセル初心者です。 仕事でエクセルを使っていて、普段は素人でもできる簡単な関数を使ったことがある程 1 2022/05/25 11:17
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- メルカリ <メルカリShops>消費者庁による販売許可の出ている機能性表示食品?の調べ方から 1 2022/11/24 17:46
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
n番目に大きい数を求めるアル...
-
EXCEL VBAのソートについて
-
Excel VBA テキストボックス内...
-
ソートアルゴリズム(c言語)
-
C#のリストボックスで、クリッ...
-
コーディングの参考
-
csvファイル内にてソートす...
-
Double型ソート方法
-
DataGridView の sort
-
自己参照型構造体とソート
-
C言語・要素除去
-
excel VBA リストビューの行...
-
ExcelVBAでのkernel32(64bit)
-
関数から配列を返すには?
-
C言語のポインタに直接アドレス...
-
ポインタ配列
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VBA基本構文の作り方 2列の...
-
C言語・要素除去
-
C# DataTableの行をソートしてD...
-
VB.NETでファイル名順にファイ...
-
構造体配列の並べ替え
-
あるディレクトリ内のファイル...
-
配列の問題
-
10個の整数を入力して小さい順...
-
2次元配列を複数項目でソートし...
-
構造体のリストをソートしたい。
-
DataGridViewソート時に先頭行...
-
DataGridViewのソートを止めたい
-
datagridviewの並べ替え
-
C++ 入力した3つのint型の整数...
-
DataGridViewの複数列を連動し...
-
Excelですべての組合せ(重複組...
-
C#のリストボックスで、クリッ...
-
VBScriptで重複レコードを削除...
おすすめ情報