2011-06-27 13 views
3

私は実行時にコントロールを追加し、これらのコントロールを追跡するアプリケーションを開発しています。私は別のハッシュテーブルをメンテナンスしていますので、それらは後になります。しかし、私は約6ハッシュテーブルを持っているとこれらを維持することは少し複雑です。だから、私はこれらのすべてのコントロールを1つのデータ構造に含めることができるかどうか疑問に思っていましたが、ハッシュテーブルの場合と同じようにそれらを識別するのは簡単です。基本的には、私は1つのキーに複数の値を追加できるハッシュテーブルの拡張バージョンです。例えば、私が今持っていることは今データ構造体で複数のハッシュテーブルを削除する#

hashtable addButtons = new hashtable(); 
hashtable remButtons = new hashtable(); 

addButtons.add(name,b); 
remButtons.add(name,r); 

私は

addButtons.add(name=>(b,r,etc,etc)); 

ような何かをしてからのようちょうどハッシュテーブルのように、それのいずれかを得ることができれば、それはクールになるで

addButtons[name][1] 

このようなことがC#で可能であるかどうかは誰にでも分かります。

+0

私は少し混乱しています。これは 'Dictionary >'で実行できませんか? – user122211

答えて

1

...

public class SomeType { // RENAME ME 
    public int AddButton {get;set;} 
    public string RemoveButton {get;set;} 
    public DateTime Some {get;set;} 
    public float Other {get;set;} 
    public decimal Names {get;set;} 
    public bool Here {get;set;} 
} // ^^ names and types above just made up; FIX ME! 

Dictionary<string,SomeType> - その後、次のことができます。

yourField.Add(name, new SomeType { AddButton = ..., ..., Here = ... }); 

var remButton = yourField[name].RemoveButton; 
+0

これはまさに私が望むように思える...ありがとう – swordfish

3

Dictionary<String, List<?>>?このようなものと組み合わせることで

public static class Extensions 
{ 
    public static void AddItemsWithName<T>(this Dictionary<String, List<T>> this, string name, params T[] items) 
    { 
      // ... 
    } 
} 

は、あなたが探している構文に非常に近い何かを与えるだろう。

私は6つの物事を表現するクラスを持っているでしょう
1

サウンズあなたが望むように辞書の辞書など:

var d = new Dictionary<string, Dictionary<string, Control>>(); 

//Create new sub dictionary 
d.Add("name1", new Dictionary<string, Control>()); 

//Add control 
d["name1"].Add("btnOne", btnOne); 

//Retrieve control 
var ctrl = d["name1"]["btnOne"]; 
2

あなたの質問が正しく理解されているかわかりません。このようなもの?

var controlsDictionary = new Dictionary<string, List<Control>>(); 

var b1 = new Button(); 
var b2 = new Button(); 

controlsDictionary["AddButtons"] = new List<Control> { b1, b2 }; 

var firstButton = controlsDictionary["AddButtons"][0]; 
関連する問題