2011-07-17 14 views
8

最初の次元のサイズを知らなくても、2次元配列を作成したいと考えています。2次元の動的長さの配列を作成するにはどうすればよいですか?

たとえば、配列を作成すると、不明な行数があります。 すべての行がアカウントを表します。すべての行のための 出口4列:ID、名前、ユーザー、パスワード

私はジャグ配列と試みたが、持ってすることはできません:、

int[][] jaggedArray = new int[][3]; 

はまた、私はArrayList探しclasesとして実装ジェネリックスについてはほとんど

としてデータの容易な操作を許可することができるソリューションを私は探しています:

  • は、データベース内の要素を使用して選択し、入力要素
  • は他のパラメータとして使用して
  • を照会し、リストに追加機能

私は、.NET(C#の)で初心者だから

をコードソリューションを私に提供するのではなく、一般的な(探し)ソリューションください。

答えて

2

.NETには動的長さ配列などはありません。代わりにList<>を使用してください。

配列の境界は、配列をインスタンス化するときにすべて知る必要があります。何が混乱しているのかは、ギザギザの配列では異なるようですが、配列の配列なので、インスタンス化すると、インスタンス化されていない配列の配列(例:null参照)になります。次に、それらの配列を再度使用して割り当てる必要があります。 "列" に固定されているのでIMO

17

、そのためのクラスを宣言:

public class Account 
{ 
    public int ID {get;set;} 
    public string Name {get;set;} 
    public string User {get;set;} 
    public string Password {get;set;} // you meant salted hash, right? ;p 
} 

は今持っている:

List<Account> list = new List<Account>(); 

これはあなたが必要なものがすべてあります

をリストに追加、選択、入力要素

データベース内の要素を使用して

list.Addなど

は、より多くの情報なしに他の機能

曖昧にパラメータとして使用して を照会していますが、Accountまたはinvidual値、またはリスト全体のいずれかを渡すことができます。

+0

ありがとうございます。私は別の質問があります:どのように特定のリスト項目のクラスメンバー値を回復するのですか? – user848568

+2

@userあなたは 'list [0] .Name'のような意味ですか? –

+0

私の場合は小さな違いが1つあります。行と列の両方がわからない。どのようにして '2-D配列 'に対して同じ結果を得ることができますか? – barnes

0

私が知る限り、配列のサイズを知らなくてもインスタンス化できません。なぜあなたはリストの配列を試してみませんか?このように:

List<int>[] a = new List<int>[yourDesireColumnNumber]; 

リストでは、追加、選択、入力要素は簡単です。他の関数でパラメータとして渡したい場合は、Typeを定義するだけです。

+0

あなたはint型の配列の固定配列ではなく、固定型int配列のリストを意味していませんか?それは[] ' –

+3

@Scrumは正しいです。リストの配列です。ところで、Marcのアプローチは素晴らしいです。 ;)私はそれから学ぶ。 –

+0

はあなたが裁判官の前にそれを、それを試してみてください'一覧 '、ない'一覧でしょう。あなたがこのアプローチを選択した場合(pと私ではない) - –

関連する問題