2011-01-14 11 views
3

私はVS 2008を使用しており、HashSetを初期化する方法を知る必要があります。私は知っている初期化中にそれを追加するために必要ないくつかの値。どのようにしてtblNamesに値を追加できますか?HashSetに値を初期化する方法<String[,]> C言語で

System.Collections.Generic.HashSet<String[,]> tblNames; 
      tblNames = new System.Collections.Generic.HashSet<string[,]>(); 

tblNames.Add(new String[0,0] {"tblCategory","CatName" ,}); // this is showing Error.. 

究極の目的は、values.Iを複製入るからユーザーを防ぐためである動的なクエリを使用してデータベースを照会するために行くの異なる形からして異なるテーブルと異なるfields.Iからそれをチェックする必要があります。私はいくつかのインデックス、値、値の形式for eg My tablename is tblCategory and field name is CatNameのテーブル名と列名を格納する必要があります。私は方法で値を格納します0,tblCategory,CatName。そこでAjaxをハンドラページに使用し、上記のコードを使用しています。0を渡してfirst value[tablename and column name]を取得し、別のテーブルやフィールドなどに1を渡します。だから私はこの方法を使うことを考えました。

私は目的を達成するために、つまりユーザーが重複した値を入力するのを防ぐために、正しい方法または他の方法を使用していますか?

おかげで、Harie

+3

は、私はあなたが唯一の*参照*平等を取得するつもりだということを認識しております願っています2D配列はこのようになります。そのため、セットは異なる要素を持つ異なる配列を扱います。それが意図なら、素晴らしい。それ以外の場合は、おそらくあなた自身の 'IEqualityComparer '実装を書かなければならず、代わりにそのセットを使うようにしてください。 – Ani

+1

2次元配列の文字列が本当に必要でしょうか?私は80年代にBASICでプログラミングして以来、私は多次元文字列配列を使ったことは一度も考えられません。あなたが実際に望むのは、別のデータ構造であると私は思っています。もし私たちにあなたの目的を教えてくれたら、もっと良い提案をすることができます。 – Gabe

+0

あなたの答えとplsのためのthnks私の更新された質問を参照してください? – kbvishnu

答えて

3
tblNames.Add(new [,] { { "0", "tblAssetCategory" }}); 
9

あなたがワンステップで知られている値のセットで、HashSetを初期化したい場合は、次のようなコードを使用することができます。これは、コレクションと呼ばれる

HashSet<string[,]> tblNames; 
string[,] stringOne = new string[1, 1]; 
string[,] stringTwo = new string[1, 1]; 

tblNames = new HashSet<string[,]> { stringOne, stringTwo }; 

をイニシャライザ。これは、C#3.0で導入され、そして次の要素が含まれた:オブジェクト初期化子の

  • 配列、{}トークンによって囲まれ、コンマで区切られました。
  • 要素初期化子。各要素は、コレクションオブジェクトに追加する要素を指定します。
+0

要素タイプは文字列の2D配列です。 – Ani

+0

@Ani:ええ、それは同じように動作します。それでも、私がこの質問にもっと注意を払うと良いでしょう。ありがとう! –

+0

私の更新された質問を参照してください。 – kbvishnu

3

私はJavaコードを記述し、それは、C#の場合と同じであると仮定したい

HashSet<T> tblNames = new HashSet<T>(); // T should be same 

HashSet<string> tblNames = new HashSet<string>(); 
tblNames.add("a"); 
tblNames.add("b"); 
tblNames.add("c"); 

or simply 
HashSet<string> tblNames = new HashSet<string> {"a", "b", "c"}; 

HashSet<String[,]> tblNames = new HashSet<String[,]>(); // same logic you can add array here 
tblNames.add(stringArray1); 
tblNames.add(stringArray2); 

or again 
HashSet<String[,]> tblNames = new HashSet<String[,]> {stringArray1, strginArray2}; 
関連する問題