
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbでDataTableの抽出コピー
-
PHP MySQL自動連番で削除された...
-
C言語において、 配列要素をひ...
-
C言語 配列の長さの上限
-
C++で、メンバもヒープに確保さ...
-
ポインタに ~0を入れること
-
x64環境で連続4GB以上のメモリ...
-
VBを2008を用いてCSVを取り込む...
-
Visual Basic 6.0 と8.0と2015
-
配列を返り値、でエラー
-
9枚の写真がA4 1枚に印刷できま...
-
aspでユーザー定義の構造体を作...
-
配列で格納したものをmsgboxで...
-
c言語
-
【速いブラインドタッチ】手を...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
RGB値を画像(PNG・BMPJPEGなど)...
-
関数のパラメタ(C++)
-
関数から配列を返すには?
-
CopyMemory()をmemcpy()に書き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
あるディレクトリ内のファイル...
-
VBA基本構文の作り方 2列の...
-
VB.NETでファイル名順にファイ...
-
ファイル名「1.jpg ~10.jpg~...
-
C# DataTableの行をソートしてD...
-
Excelですべての組合せ(重複組...
-
DataGridViewソート時に先頭行...
-
構造体配列のソート
-
バブルソートとセレクションソ...
-
VB2005 符号を踏まえた降順ソ...
-
DataGridViewの複数列を連動し...
-
Verilog でのソートの仕方
-
datagridviewの並べ替え
-
2次元配列を複数項目でソートし...
-
VBScriptで重複レコードを削除...
-
GridViewで列のソートを無効に...
-
4番目以降の並べ替え
-
DataGridViewの昇順降順。
おすすめ情報