2016-02-28 26 views
1

我想構建一個簡單的應用程序,主要的一點是我必須使用字典。我將在我的字典裏這樣的數據:如何在字典中創建更多2個參數?

(鍵,數字,號碼,號碼,數量)所以下面

是我的代碼,它實現我的數據。

Dictionary<string,int,int,int,int> states = new Dictionary<string,int,int,int,int>(); 

我看過很多關於如何解決這個問題的資料,但是我找不到它。 我得到一個錯誤,它必須有兩個參數。

你可以給我一個解決方案,使字典可以容納2個以上的參數嗎?

+0

任何數組類型這樣走爲什麼不創建包含4個數字一類? –

+0

我覺得很難在我的邏輯應用程序中實現,我試過它我得到了很多卡住,所以而不是它,我正在嘗試使用字典 – ridwan

回答

2

您可以創建一個類來保存4個號碼是這樣的:

public class MyData 
{ 
    public int Number1 {get;set;} 
    public int Number2 {get;set;} 
    public int Number3 {get;set;} 
    public int Number4 {get;set;} 
} 

而且使用它作爲字典值類型是這樣的:

Dictionary<string,MyData> states = new Dictionary<string,MyDate>(); 

這裏是增加了一個代碼示例item to the dictionary:

states.Add("my_key", new MyData { Number1 = 1, Number2 = 2, Number3 = 3, Number4 = 4}); 

要訪問特定鍵的數據,您可以使用:

MyData data = states["my_key"]; 

int number1 = data.Number1; 
//... 

遍歷所有的數據,你可以使用一個簡單的foreach這樣的:

foreach(var kvp in states) 
{ 
    var key = kvp.Key; 

    var data = kvp.Value; 

    var number1 = data.Number1; 
    //... 
} 

MyData另一種辦法是Tuple類。但擁有自己的類型可能會更好,因爲您可以爲4個數字屬性擁有自己的名稱。

+0

所以現在,我如何迭代我的所有數據 以及如何才能訪問我的數據有一個關鍵字:my_key: – ridwan

+0

@ridwan,請參閱我的更新 –

+0

您可以使用'Tuple <...>'類型而不是像MyData這樣的自定義類。例如'Tuple '在你的情況下。在那裏你可以通過'Item1','Item2'等來訪問這些值。創建實例最簡單的方法是靜態的'Tuple.Create'方法 – Koopakiller

0

如果最後四個整數的名字也沒關係,你可以使用

Dictionary<string, List<int>> 

通過這種方式,你可以用你的字符串鍵讓你的INT列表,然後枚舉列表。

或者您也可以與作爲

Dictionary<string, int[]> 
相關問題