2013-06-02 16 views
-3

我有PHP代碼如下C#如何用交錯數組創建字符串類型索引

$array[$x] = array(); 
    $array[$x]["no"] = $no; 
    $array[$x]["cid"] = $cid; 
    $array[$x]["wait"] = $wait; 
    $array[$x]["prio"] = $prio; 
    $array[$x]["debug"] = $command[$i]; 

X ++;我想在C#中有類似的代碼,但是在鋸齒狀的數組步驟中,我很困惑在C#中如何做到這一點,任何人都可以在這方面幫助我嗎?那是一個數組的索引是字符串值。

+1

我們不知道你的PHP是做什麼的,這使得任何不知道* PHP和C#的人都很難幫助你。 –

+3

我相信PHP數組只是散列表,所以它看起來像你想要一個'Dictionary >'而不是C#中的數組。 – Lee

回答

2

實現鋸齒狀數組的一種方法是字典。基於下面的代碼的東西可能會讓你開始。

Dictionary<string, string>[] array; 

void MyMethod(int[] ckeys, int gotovalue, string[] command) 
{ 
    int x = 0; 
    for(int ii = (ckeys[0] + 1); ii < gotovalue; ii++) 
    { 
     string no = preg_replace(" .*", "", command[ii]); 
     string temp = preg_replace("^[0-9]*. ", "", command[ii]); 
     string cid = preg_replace(" (.*", "", temp); 
     temp = preg_replace(".* (wait: ", "", command[ii]); 
     string wait = preg_replace(",.*", "", temp); 
     temp = preg_replace(".*, prio: ", "", command[ii]); 
     string prio = preg_replace(").*", "", temp); 

     array[x] = new Dictionary<string, string>(); 
     array[x]["no"] = no; 
     array[x]["cid"] = cid; 
     array[x]["wait"] = wait; 
     array[x]["prio"] = prio; 
     array[x]["debug"] = command[ii]; 

     x++; 
    } 
} 

string preg_replace(string aa, string bb, string cc) 
{ 
    return aa + bb + cc; 
} 

編輯:

我把代碼中的問題的最初版本,並試圖將其轉換成C#,假設所有未指定類型爲字符串。被調用的例程preg_replace未被指定,但似乎需要三個字符串並返回一個。

原始問題的行$x = 0;似乎將$x定義爲一個整數並初始化它。行$array[$x] = array();似乎表示$array在給定的整數索引被引用到一個空數組。然後行$array[$x]["no"]將該數組的"no"元素設置爲一個字符串。我提議的C#將array聲明爲一個字典數組。 C#字典是一種關聯數組形式,在Perl語言中它將被稱爲「哈希」。整段代碼會將值寫入結構中,並有效地將其從參數中的值初始化爲MyMethod

其他地方將需要一個語句,如array = new Dictionary<string, string>[gotovalue]使array引用一個實際的數組。

+0

這是否真的有用?我已經嘗試過,但如何初始化像C#中的字典數據類型的數組?那不是讓感官? – Aemz

+0

@Aemz我在回答中加了一些解釋。答案的哪個方面沒有意義? – AdrianHHH

+0

它說使用未分配的局部變量'數組',我怎麼已經初始化相同,你在整數x的聲明後呢?我認爲字典中沒有數組類型的初始化,這就是爲什麼我說它沒有意義。 – Aemz

相關問題